PLC_Generation/logs/workflow_SAT9_MCM01_20250901_163606.log
2025-09-02 11:13:29 +04:00

973 lines
158 KiB
Plaintext

{"level": "INFO", "message": "PLC Generation Workflow started", "timestamp": "2025-09-01T16:36:06.097815", "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_MCM01.xlsx", "project_name": "SAT9_MCM01"}
{"level": "INFO", "message": "Starting data processing step", "timestamp": "2025-09-01T16:36:06.098095", "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: ['NETWORK_PLC', 'DESC_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']
NOTE: Ignored 1 rows from DESC sheet with an empty TAGNAME.
Classifying signals and adding IO paths...
Signal classification results:
SPARE: 241
I: 184
O: 58
IOLink: 1
Device type distribution:
APF: 308
M12DR: 112
Hub: 16
IB16: 16
OB16E: 16
IB16S: 16
IO Path mapping results:
Successful mappings: 484/484 (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_ULC1_8', 'DPM1_ULC2_8', 'DPM1_ULC3_6']
================================================================================
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 488 rows
Sample of merged data:
TAGNAME TERM DESCA ... SIGNAL DEVICE_TYPE IO_PATH
0 PDP1_PMM1 ... NaN NaN NaN
1 SLOT5_IB16 I0 MCM01 ... I IB16 Local:5:I.Data.0
2 SLOT5_IB16 I1 MCM01 ... 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 MCM01 ... I IB16 Local:5:I.Data.2
[10 rows x 11 columns]
New Excel file created: SAT9_MCM01_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_MCM01.xlsx
DEBUG: Full project pattern matched: SAT9_MCM01
DEBUG: Final subsystem name: SAT9_MCM01
Reading input file: SAT9_MCM01_DESC_IP_MERGED.xlsx
Removed 1 IOLink rows (including beacons, FIOH channels, and all other IOLink entries)
Removed 4 blank name/description rows
Saving output file: SAT9_MCM01_OUTPUT.csv
Processing complete!
Created standard output file: DESC_IP_MERGED.xlsx
=== Step 1: PLC Data Generator stderr ===
=== Step 1 File Copy ===
Copied SAT9_MCM01_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-01T16:36:09.312610", "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-01T16:36:09.312875", "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_MCM01_20250901_163606.log", "timestamp": "2025-09-01T16:36:11.439387", "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-01T16:36:11.441405", "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-01T16:36:11.441645", "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-01T16:36:11.454690", "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-01T16:36:11.455003", "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-01T16:36:11.455188", "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-01T16:36:11.468909", "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-01T16:36:11.475719", "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-01T16:36:11.479921", "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-01T16:36:11.485275", "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-01T16:36:11.489906", "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-01T16:36:11.494401", "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-01T16:36:11.498754", "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-01T16:36:11.507231", "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-01T16:36:11.510827", "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-01T16:36:11.514386", "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-01T16:36:11.518436", "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-01T16:36:11.522172", "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-01T16:36:11.525807", "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-01T16:36:11.529627", "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-01T16:36:11.533577", "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-01T16:36:11.537785", "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-01T16:36:11.541276", "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-01T16:36:11.544614", "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-01T16:36:11.548025", "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-01T16:36:11.552179", "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-01T16:36:11.555872", "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-01T16:36:11.559217", "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-01T16:36:11.562489", "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-01T16:36:11.566082", "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-01T16:36:11.569891", "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-01T16:36:11.573252", "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-01T16:36:11.576620", "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-01T16:36:11.580296", "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-01T16:36:11.584013", "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-01T16:36:11.587543", "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-01T16:36:11.591160", "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-01T16:36:11.591348", "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-01T16:36:12.473907", "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-01T16:36:12.480063", "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-01T16:36:12.483233", "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-01T16:36:12.485079", "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-01T16:36:12.494149", "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": "MCM01", "score": 24}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-01T16:36:12.494603", "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": 13}
{"level": "INFO", "message": "Successfully generated routine: outputs", "timestamp": "2025-09-01T16:36:12.495764", "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-01T16:36:12.495952", "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-01T16:36:12.500245", "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-01T16:36:12.500562", "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 ULC1_12: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.502079", "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 ULC1_3: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.502452", "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 ULC2_12: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.502757", "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 ULC2_3: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.503072", "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 ULC3_3: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.503364", "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 ULC3_6: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.503608", "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 ULC4_3: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.503917", "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 ULC4_6: {'EPC2', 'EPC1'}", "timestamp": "2025-09-01T16:36:12.504179", "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: {'ULC1_12': {'EPC2', 'EPC1'}, 'ULC1_3': {'EPC2', 'EPC1'}, 'ULC2_12': {'EPC2', 'EPC1'}, 'ULC2_3': {'EPC2', 'EPC1'}, 'ULC3_3': {'EPC2', 'EPC1'}, 'ULC3_6': {'EPC2', 'EPC1'}, 'ULC4_3': {'EPC2', 'EPC1'}, 'ULC4_6': {'EPC2', 'EPC1'}}", "timestamp": "2025-09-01T16:36:12.504324", "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 01-01 candidates: ['ULC1_1']", "timestamp": "2025-09-01T16:36:12.504887", "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 ULC1_1 in zone 01-01", "timestamp": "2025-09-01T16:36:12.505039", "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-01T16:36:12.505160", "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": "01-01", "interlock": "MCM01", "dcs_list": []}
{"level": "DEBUG", "message": "Zone 01-02 candidates: ['ULC1_1', 'ULC1_3', 'ULC1_4', 'ULC1_5', 'ULC1_6']", "timestamp": "2025-09-01T16:36:12.505439", "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 ULC1_1 in zone 01-02", "timestamp": "2025-09-01T16:36:12.505573", "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 ULC1_4 in zone 01-02", "timestamp": "2025-09-01T16:36:12.505683", "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 ULC1_5 in zone 01-02", "timestamp": "2025-09-01T16:36:12.505796", "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 ULC1_6 in zone 01-02", "timestamp": "2025-09-01T16:36:12.505909", "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-01T16:36:12.506020", "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": "01-02", "interlock": "MCM01", "dcs_list": ["ULC1_3_EPC1_DCS_CTRL.O1", "ULC1_3_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 01-03 candidates: ['ULC1_6', 'ULC1_7', 'ULC1_8', 'ULC1_9', 'ULC1_10', 'ULC1_11', 'ULC1_12']", "timestamp": "2025-09-01T16:36:12.506287", "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 ULC1_6 in zone 01-03", "timestamp": "2025-09-01T16:36:12.506436", "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 ULC1_7 in zone 01-03", "timestamp": "2025-09-01T16:36:12.506549", "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 ULC1_8 in zone 01-03", "timestamp": "2025-09-01T16:36:12.506656", "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 ULC1_9 in zone 01-03", "timestamp": "2025-09-01T16:36:12.506761", "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 ULC1_10 in zone 01-03", "timestamp": "2025-09-01T16:36:12.506864", "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 ULC1_11 in zone 01-03", "timestamp": "2025-09-01T16:36:12.506967", "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-01T16:36:12.507079", "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": "01-03", "interlock": "MCM01", "dcs_list": ["ULC1_12_EPC1_DCS_CTRL.O1", "ULC1_12_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 01-04 candidates: ['ULC2_1']", "timestamp": "2025-09-01T16:36:12.507325", "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 ULC2_1 in zone 01-04", "timestamp": "2025-09-01T16:36:12.507449", "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-01T16:36:12.507558", "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": "01-04", "interlock": "MCM01", "dcs_list": []}
{"level": "DEBUG", "message": "Zone 01-05 candidates: ['ULC2_1', 'ULC2_3', 'ULC2_4', 'ULC2_5', 'ULC2_6']", "timestamp": "2025-09-01T16:36:12.507803", "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 ULC2_1 in zone 01-05", "timestamp": "2025-09-01T16:36:12.507958", "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 ULC2_4 in zone 01-05", "timestamp": "2025-09-01T16:36:12.508104", "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 ULC2_5 in zone 01-05", "timestamp": "2025-09-01T16:36:12.508274", "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 ULC2_6 in zone 01-05", "timestamp": "2025-09-01T16:36:12.508440", "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-01T16:36:12.508575", "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": "01-05", "interlock": "MCM01", "dcs_list": ["ULC2_3_EPC1_DCS_CTRL.O1", "ULC2_3_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 01-06 candidates: ['ULC2_6', 'ULC2_7', 'ULC2_8', 'ULC2_9', 'ULC2_10', 'ULC2_11', 'ULC2_12']", "timestamp": "2025-09-01T16:36:12.508931", "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 ULC2_6 in zone 01-06", "timestamp": "2025-09-01T16:36:12.509088", "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 ULC2_7 in zone 01-06", "timestamp": "2025-09-01T16:36:12.509196", "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 ULC2_8 in zone 01-06", "timestamp": "2025-09-01T16:36:12.509359", "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 ULC2_9 in zone 01-06", "timestamp": "2025-09-01T16:36:12.509490", "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 ULC2_10 in zone 01-06", "timestamp": "2025-09-01T16:36:12.509615", "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 ULC2_11 in zone 01-06", "timestamp": "2025-09-01T16:36:12.509726", "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-01T16:36:12.509840", "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": "01-06", "interlock": "MCM01", "dcs_list": ["ULC2_12_EPC1_DCS_CTRL.O1", "ULC2_12_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 01-07 candidates: ['ULC3_1']", "timestamp": "2025-09-01T16:36:12.510099", "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 ULC3_1 in zone 01-07", "timestamp": "2025-09-01T16:36:12.510263", "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-01T16:36:12.510471", "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": "01-07", "interlock": "MCM01", "dcs_list": []}
{"level": "DEBUG", "message": "Zone 01-08 candidates: ['ULC3_1', 'ULC3_3', 'ULC3_4']", "timestamp": "2025-09-01T16:36:12.510894", "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 ULC3_1 in zone 01-08", "timestamp": "2025-09-01T16:36:12.511092", "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 ULC3_4 in zone 01-08", "timestamp": "2025-09-01T16:36:12.511222", "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-01T16:36:12.511348", "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": "01-08", "interlock": "MCM01", "dcs_list": ["ULC3_3_EPC1_DCS_CTRL.O1", "ULC3_3_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 01-09 candidates: ['ULC3_4', 'ULC3_5', 'ULC3_6']", "timestamp": "2025-09-01T16:36:12.511642", "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 ULC3_4 in zone 01-09", "timestamp": "2025-09-01T16:36:12.511790", "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 ULC3_5 in zone 01-09", "timestamp": "2025-09-01T16:36:12.511903", "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-01T16:36:12.512013", "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": "01-09", "interlock": "MCM01", "dcs_list": ["ULC3_6_EPC1_DCS_CTRL.O1", "ULC3_6_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 01-10 candidates: ['ULC4_1']", "timestamp": "2025-09-01T16:36:12.512260", "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 ULC4_1 in zone 01-10", "timestamp": "2025-09-01T16:36:12.512383", "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-01T16:36:12.512488", "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": "01-10", "interlock": "MCM01", "dcs_list": []}
{"level": "DEBUG", "message": "Zone 01-11 candidates: ['ULC4_1', 'ULC4_3', 'ULC4_4']", "timestamp": "2025-09-01T16:36:12.512722", "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 ULC4_1 in zone 01-11", "timestamp": "2025-09-01T16:36:12.512898", "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 ULC4_4 in zone 01-11", "timestamp": "2025-09-01T16:36:12.513047", "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-01T16:36:12.513162", "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": "01-11", "interlock": "MCM01", "dcs_list": ["ULC4_3_EPC1_DCS_CTRL.O1", "ULC4_3_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 01-12 candidates: ['ULC4_4', 'ULC4_5', 'ULC4_6']", "timestamp": "2025-09-01T16:36:12.513458", "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 ULC4_4 in zone 01-12", "timestamp": "2025-09-01T16:36:12.513601", "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 ULC4_5 in zone 01-12", "timestamp": "2025-09-01T16:36:12.513714", "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-01T16:36:12.513842", "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": "01-12", "interlock": "MCM01", "dcs_list": ["ULC4_6_EPC1_DCS_CTRL.O1", "ULC4_6_EPC2_DCS_CTRL.O1"]}
{"level": "INFO", "message": "Successfully generated routine: zones", "timestamp": "2025-09-01T16:36:12.513979", "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-01T16:36:12.514108", "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-01T16:36:12.515790", "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-01T16:36:12.515999", "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 17 tags", "timestamp": "2025-09-01T16:36:12.520092", "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-01T16:36:12.520304", "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: 47 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS);", "timestamp": "2025-09-01T16:36:12.520492", "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_01_02_OK)[OTE(ULC1_3_VFD1:SO.STOOutput),OTE(ULC1_4_VFD1:SO.STOOutput),OTE(ULC1_5_VFD1:SO.STOOutput),OTE(ULC1_6_VFD1:SO.STOOutput)];", "timestamp": "2025-09-01T16:36:12.520649", "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: 16 rungs | example: [XIC(SFT_ULC1_3_SS1_SPB) ,XIC(SFT_MCM_S_PB)]OTE(RST_ULC1_3_EPC1_ESTOP);", "timestamp": "2025-09-01T16:36:12.520801", "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: 13 rungs | example: OTE(EStop_01_01_OK);", "timestamp": "2025-09-01T16:36:12.520933", "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: 16 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-01T16:36:12.521057", "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-01T16:36:12.521205", "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-01T16:36:12.521327", "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_MCM01/SafetyProgram_Generated.L5X", "timestamp": "2025-09-01T16:36:12.523607", "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_MCM01/SafetyProgram_Generated.L5X", "timestamp": "2025-09-01T16:36:12.523773", "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-01T16:36:12.523941", "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-01T16:36:12.524082", "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-01T16:36:12.524285", "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-01T16:36:12.524408", "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-01T16:36:12.524541", "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-01T16:36:12.583869", "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-01T16:36:12.592170", "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": "MCM01", "score": 24}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-01T16:36:12.592671", "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": 13}
{"level": "DEBUG", "message": "Extracting FPE data", "timestamp": "2025-09-01T16:36:12.704901", "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=4", "timestamp": "2025-09-01T16:36:12.705774", "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": "FPE processing ULC1_2_PE1 base=ULC1_2", "timestamp": "2025-09-01T16:36:12.706152", "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": "No VFD found for ULC1_2", "timestamp": "2025-09-01T16:36:12.706655", "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": "FPE ULC1_2_PE1: conveyor=ULC1_2_VFD1.CTRL parent_fault=ULC1_2_VFD1:I.ConnectionFaulted input=ULC1_3_VFD1:I.In_2 beacon=ULC1_2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-01T16:36:12.707736", "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": "FPE processing ULC2_2_PE1 base=ULC2_2", "timestamp": "2025-09-01T16:36:12.707996", "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": "No VFD found for ULC2_2", "timestamp": "2025-09-01T16:36:12.708491", "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": "FPE ULC2_2_PE1: conveyor=ULC2_2_VFD1.CTRL parent_fault=ULC2_2_VFD1:I.ConnectionFaulted input=ULC2_3_VFD1:I.In_2 beacon=ULC2_2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-01T16:36:12.709513", "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": "FPE processing ULC4_7_PE1 base=ULC4_7", "timestamp": "2025-09-01T16:36:12.709788", "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": "No VFD found for ULC4_7", "timestamp": "2025-09-01T16:36:12.710253", "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": "FPE ULC4_7_PE1: conveyor=ULC4_7_VFD1.CTRL parent_fault=ULC4_7_VFD1:I.ConnectionFaulted input=ULC4_6_VFD1:I.In_3 beacon=ULC4_7_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-01T16:36:12.711286", "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": "FPE processing ULC3_7_PE1 base=ULC3_7", "timestamp": "2025-09-01T16:36:12.711546", "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": "No VFD found for ULC3_7", "timestamp": "2025-09-01T16:36:12.711988", "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": "FPE ULC3_7_PE1: conveyor=ULC3_7_VFD1.CTRL parent_fault=ULC3_7_VFD1:I.ConnectionFaulted input=ULC3_6_VFD1:I.In_3 beacon=ULC3_7_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-01T16:36:12.712996", "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: FPE configs=4", "timestamp": "2025-09-01T16:36:12.713199", "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-01T16:36:12.713432", "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-01T16:36:12.714634", "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 PDP1_PMM1", "timestamp": "2025-09-01T16:36:12.714904", "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 PDP1_PMM1 DPM=DPM1_ULC3_6", "timestamp": "2025-09-01T16:36:12.715102", "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 PDP1_PMM1 PWM fault IO PDP1_FIOM1:I.Pt12.Data", "timestamp": "2025-09-01T16:36:12.715732", "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 PDP1_PMM1 configuration stored", "timestamp": "2025-09-01T16:36:12.715924", "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-01T16:36:12.716117", "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-01T16:36:12.716411", "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-01T16:36:12.718000", "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 PDP1: CBs=26 FIOs=2", "timestamp": "2025-09-01T16:36:12.718301", "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 PDP1: configured CBs=26 positions=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] fault=PDP1_FIOH1:I.ConnectionFaulted", "timestamp": "2025-09-01T16:36:12.718538", "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-01T16:36:12.718723", "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=305 | standard=33 safety=95 dcs=17 modules=152", "timestamp": "2025-09-01T16:36:12.719876", "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 305 controller tags", "timestamp": "2025-09-01T16:36:12.720118", "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-01T16:36:12.720315", "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-01T16:36:12.720505", "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-01T16:36:12.720705", "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-01T16:36:12.721078", "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-01T16:36:12.721252", "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-01T16:36:12.721470", "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-01T16:36:12.722514", "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-01T16:36:12.722732", "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-01T16:36:12.723871", "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-01T16:36:12.724087", "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-01T16:36:12.725068", "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-01T16:36:12.725743", "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-01T16:36:12.727452", "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-01T16:36:12.727926", "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-01T16:36:12.729661", "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-01T16:36:12.729913", "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=28", "timestamp": "2025-09-01T16:36:12.730377", "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=ULC1_3_VFD1, ULC1_4_VFD1, ULC1_5_VFD1, ULC1_6_VFD1, ULC1_7_VFD1...", "timestamp": "2025-09-01T16:36:12.731027", "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=28", "timestamp": "2025-09-01T16:36:12.731233", "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-01T16:36:12.731448", "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-01T16:36:12.731725", "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-01T16:36:12.731930", "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-01T16:36:12.734536", "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-01T16:36:12.734814", "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-01T16:36:12.735216", "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-01T16:36:12.735411", "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 17 rows", "timestamp": "2025-09-01T16:36:12.735631", "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: MCM01 -> Local:5:I.Data.0", "timestamp": "2025-09-01T16:36:12.735990", "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: ULC1_12_S2_PB -> ULC1_10_VFD1:I.IO_0", "timestamp": "2025-09-01T16:36:12.736271", "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: ULC1_12_S1_PB -> ULC1_12_VFD1:I.IO_0", "timestamp": "2025-09-01T16:36:12.736640", "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: ULC1_3_SS2_SPB -> ULC1_3_VFD1:I.IO_0", "timestamp": "2025-09-01T16:36:12.736923", "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: ULC2_12_S2_PB -> ULC2_10_VFD1:I.IO_0", "timestamp": "2025-09-01T16:36:12.737193", "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: ULC2_12_S1_PB -> ULC2_12_VFD1:I.IO_0", "timestamp": "2025-09-01T16:36:12.737510", "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: ULC2_3_SS2_SPB -> ULC2_3_VFD1:I.IO_0", "timestamp": "2025-09-01T16:36:12.737819", "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: ULC1_3_SS1_SPB -> ULC1_4_FIO1:I.Pt02.Data", "timestamp": "2025-09-01T16:36:12.738144", "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: ULC2_3_SS1_SPB -> ULC2_4_FIO1:I.Pt02.Data", "timestamp": "2025-09-01T16:36:12.738434", "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: ULC3_3_SS1_SPB -> ULC3_4_FIO1:I.Pt08.Data", "timestamp": "2025-09-01T16:36:12.738736", "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: ULC3_3_SS2_SPB -> ULC3_4_FIO1:I.Pt12.Data", "timestamp": "2025-09-01T16:36:12.739038", "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: ULC3_6_SS1_SPB -> ULC3_6_FIO1:I.Pt08.Data", "timestamp": "2025-09-01T16:36:12.739392", "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: ULC3_6_SS2_SPB -> ULC3_6_FIO1:I.Pt12.Data", "timestamp": "2025-09-01T16:36:12.739664", "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: ULC4_3_SS1_SPB -> ULC4_4_FIO1:I.Pt08.Data", "timestamp": "2025-09-01T16:36:12.739900", "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: ULC4_3_SS2_SPB -> ULC4_4_FIO1:I.Pt12.Data", "timestamp": "2025-09-01T16:36:12.740156", "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: ULC4_6_SS1_SPB -> ULC4_6_FIO1:I.Pt10.Data", "timestamp": "2025-09-01T16:36:12.740407", "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: ULC4_6_SS2_SPB -> ULC4_6_FIO1:I.Pt14.Data", "timestamp": "2025-09-01T16:36:12.740659", "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 17 rungs", "timestamp": "2025-09-01T16:36:12.740888", "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(MCM01);", "timestamp": "2025-09-01T16:36:12.741101", "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(ULC1_4_FIO1:I.Pt02.Data)OTE(ULC1_3_SS1_SPB);", "timestamp": "2025-09-01T16:36:12.741424", "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(ULC1_3_VFD1:I.IO_0)OTE(ULC1_3_SS2_SPB);", "timestamp": "2025-09-01T16:36:12.741619", "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(ULC1_12_VFD1:I.IO_0)OTE(ULC1_12_S1_PB);", "timestamp": "2025-09-01T16:36:12.741839", "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(ULC1_10_VFD1:I.IO_0)OTE(ULC1_12_S2_PB);", "timestamp": "2025-09-01T16:36:12.742028", "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(ULC2_4_FIO1:I.Pt02.Data)OTE(ULC2_3_SS1_SPB);", "timestamp": "2025-09-01T16:36:12.742598", "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(ULC2_3_VFD1:I.IO_0)OTE(ULC2_3_SS2_SPB);", "timestamp": "2025-09-01T16:36:12.743039", "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 8: XIC(ULC2_12_VFD1:I.IO_0)OTE(ULC2_12_S1_PB);", "timestamp": "2025-09-01T16:36:12.743464", "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 9: XIC(ULC2_10_VFD1:I.IO_0)OTE(ULC2_12_S2_PB);", "timestamp": "2025-09-01T16:36:12.743694", "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 10: XIC(ULC3_4_FIO1:I.Pt08.Data)OTE(ULC3_3_SS1_SPB);", "timestamp": "2025-09-01T16:36:12.743920", "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 11: XIC(ULC3_4_FIO1:I.Pt12.Data)OTE(ULC3_3_SS2_SPB);", "timestamp": "2025-09-01T16:36:12.744107", "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 12: XIC(ULC3_6_FIO1:I.Pt08.Data)OTE(ULC3_6_SS1_SPB);", "timestamp": "2025-09-01T16:36:12.744281", "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 13: XIC(ULC3_6_FIO1:I.Pt12.Data)OTE(ULC3_6_SS2_SPB);", "timestamp": "2025-09-01T16:36:12.744506", "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 14: XIC(ULC4_4_FIO1:I.Pt08.Data)OTE(ULC4_3_SS1_SPB);", "timestamp": "2025-09-01T16:36:12.744684", "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 15: XIC(ULC4_4_FIO1:I.Pt12.Data)OTE(ULC4_3_SS2_SPB);", "timestamp": "2025-09-01T16:36:12.744859", "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 16: XIC(ULC4_6_FIO1:I.Pt10.Data)OTE(ULC4_6_SS1_SPB);", "timestamp": "2025-09-01T16:36:12.745068", "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 17: XIC(ULC4_6_FIO1:I.Pt14.Data)OTE(ULC4_6_SS2_SPB);", "timestamp": "2025-09-01T16:36:12.745291", "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 17 total rungs", "timestamp": "2025-09-01T16:36:12.745464", "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-01T16:36:12.745648", "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-01T16:36:12.745892", "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-01T16:36:12.746323", "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-01T16:36:12.746534", "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-01T16:36:12.746836", "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-01T16:36:12.747050", "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-01T16:36:12.747420", "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-01T16:36:12.747627", "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-01T16:36:12.748040", "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-01T16:36:12.748249", "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-01T16:36:12.748763", "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: fpe", "timestamp": "2025-09-01T16:36:12.749006", "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: fpe", "timestamp": "2025-09-01T16:36:12.749305", "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-01T16:36:12.749541", "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-01T16:36:12.749854", "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-01T16:36:12.750087", "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-01T16:36:12.750376", "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-01T16:36:12.751012", "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-01T16:36:12.752316", "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-01T16:36:12.752580", "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-01T16:36:12.752777", "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-01T16:36:12.753041", "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-01T16:36:12.753266", "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': True, 'pmm': True, 'cb_monitor': True, 'belt_tracking': True, 'main_routine': True}", "timestamp": "2025-09-01T16:36:12.753497", "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 (21): 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, R095_STATION_S_PB, R096_STATION_SS_PB, R097_STATION_EPC, R100_JPE, R101_FPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking", "timestamp": "2025-09-01T16:36:12.753724", "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-01T16:36:12.753944", "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-01T16:36:12.754146", "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: 4 rungs | example: NOP();", "timestamp": "2025-09-01T16:36:12.754328", "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-01T16:36:12.754552", "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-01T16:36:12.754733", "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: 29 rungs | example: NOP();", "timestamp": "2025-09-01T16:36:12.754921", "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: 24 rungs | example: XIC(ULC1_4_VFD1.CTRL.STS.Enabled)OTE(ULC1_3_VFD1.CTRL.CMD.Interlock);", "timestamp": "2025-09-01T16:36:12.755107", "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,ULC1_3_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,ULC1_4_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,ULC1_5_VFD1.CTRL.CMD.Speed_FPM) ,...", "timestamp": "2025-09-01T16:36:12.755317", "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: 16 rungs | example: [XIO(ULC1_3_VFD1:SI.In00Data) ,XIO(ULC1_3_VFD1:SI.In01Data) ]XIO(ULC1_3_VFD1:SO.STOOutput)XIO(ULC1_4_VFD1:SO.STOOutput)XIO(ULC1_5_VFD1:SO.STOOutput)XIO(ULC1_...", "timestamp": "2025-09-01T16:36:12.755519", "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: 11 rungs | example: AOI_ENCODER(ULC1_10_ENCODER.AOI,ULC1_10_ENCODER.HMI,ULC1_10_ENCODER.CTRL,ULC1_10_VFD1.CTRL,NO_UPSTREAM,ULC1_11_VFD1.CTRL,ULC1_10_VFD1:I.In_1,ULC1_10_VFD1:I.C...", "timestamp": "2025-09-01T16:36:12.755748", "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: 18 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);", "timestamp": "2025-09-01T16:36:12.755947", "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: 8 rungs | example: AOI_STATION_JR_PB(ULC1_7_JR1_PB.AOI,ULC1_7_JR1_PB.HMI,ULC1_7_JR1_PB.CTRL,NO_PARTNER,ULC1_7_VFD1:I.IO_0,ULC1_7_VFD1:O.IO_1)MOVE(ULC1_7_JR1_PB.CTRL.STS.Log,ULC...", "timestamp": "2025-09-01T16:36:12.756180", "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": "- R095_STATION_S_PB: 4 rungs | example: AOI_STATION_S_PB(ULC1_12_S1_PB_STATION.AOI,ULC1_12_S1_PB_STATION.HMI,ULC1_12_S1_PB_STATION.CTRL,ULC1_12_VFD1.CTRL,ULC1_12_VFD1:I.IO_0,ULC1_12_VFD1:O.IO_1);", "timestamp": "2025-09-01T16:36:12.756359", "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": "- R096_STATION_SS_PB: 12 rungs | example: AOI_STATION_SS_PB(ULC1_3_SS1_STATION.AOI,ULC1_3_SS1_STATION.HMI,ULC1_3_SS1_STATION.CTRL,ULC1_3_VFD1.CTRL,ULC1_4_FIO1:I.ConnectionFaulted,ULC1_4_FIO1:I.Pt02.D...", "timestamp": "2025-09-01T16:36:12.756570", "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": "- R097_STATION_EPC: 14 rungs | example: AOI_STATION_EPC(ULC1_12_EPC1_STATION.AOI,MCM.CTRL,ULC1_12_EPC1_STATION.HMI,ULC1_12_S2_PB_STATION.CTRL,ULC1_12_VFD1:I.ConnectionFaulted,ULC1_12_VFD1:SI.In00Da...", "timestamp": "2025-09-01T16:36:12.756724", "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: 30 rungs | example: AOI_JPE(ULC1_10_TPE1.AOI,ULC1_10_TPE1.HMI,ULC1_10_TPE1.CTRL,ULC1_10_VFD1.CTRL,?,ULC1_10_VFD1:I.ConnectionFaulted,ULC1_10_VFD1:I.In_2,YES,?);", "timestamp": "2025-09-01T16:36:12.756879", "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": "- R101_FPE: 4 rungs | example: AOI_FPE(ULC1_2_PE1.AOI,ULC1_2_PE1.HMI,ULC1_2_PE1.CTRL,ULC1_2_VFD1.CTRL,ULC1_2_VFD1:I.ConnectionFaulted,ULC1_3_VFD1:I.In_2,ULC1_2_FIOH1:O.ProcessDataOut.Conne...", "timestamp": "2025-09-01T16:36:12.757158", "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-01T16:36:12.757425", "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-01T16:36:12.757622", "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: 29 rungs | example: NOP();", "timestamp": "2025-09-01T16:36:12.757828", "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-01T16:36:12.758014", "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-01T16:36:12.758209", "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_MCM01/MainProgram_Generated.L5X", "timestamp": "2025-09-01T16:36:12.767541", "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_MCM01/MainProgram_Generated.L5X", "timestamp": "2025-09-01T16:36:12.767823", "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-01T16:36:12.768070", "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-01T16:36:12.768286", "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-01T16:36:12.768627", "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_MCM01/SafetyTagMapping.txt", "timestamp": "2025-09-01T16:36:12.815835", "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: 17", "timestamp": "2025-09-01T16:36:12.816106", "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-01T16:36:12.816427", "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 STATION_JR_PB config for ULC1_7_JR1_PB
Found STATION_JR_PB config for ULC2_7_JR2_PB
Found STATION_JR_PB config for ULC2_7_JR1_PB
Found STATION_JR_PB config for ULC3_6_JR2_PB
Found STATION_JR_PB config for ULC1_7_JR2_PB
Found STATION_JR_PB config for ULC3_6_JR1_PB
Found STATION_JR_PB config for ULC4_4_JR1_PB
Found STATION_JR_PB config for ULC4_4_JR2_PB
Found STATION_S_PB config for ULC1_12_S2_PB
Found STATION_S_PB config for ULC1_12_S1_PB
Found STATION_S_PB config for ULC2_12_S2_PB
Found STATION_S_PB config for ULC2_12_S1_PB
Found STATION_SS_PB config for ULC1_3_SS2
Found STATION_SS_PB config for ULC2_3_SS2
Found STATION_SS_PB config for ULC1_3_SS1
Found STATION_SS_PB config for ULC2_3_SS1
Found STATION_SS_PB config for ULC3_3_SS1
Found STATION_SS_PB config for ULC3_3_SS2
Found STATION_SS_PB config for ULC3_6_SS1
Found STATION_SS_PB config for ULC3_6_SS2
Found STATION_SS_PB config for ULC4_3_SS1
Found STATION_SS_PB config for ULC4_3_SS2
Found STATION_SS_PB config for ULC4_6_SS1
Found STATION_SS_PB config for ULC4_6_SS2
Found STATION_EPC config for ULC1_12_EPC1
Found STATION_EPC config for ULC1_3_EPC1
Found STATION_EPC config for ULC2_12_EPC1
Found STATION_EPC config for ULC2_3_EPC1
Found STATION_EPC config for ULC3_3_EPC1
Found STATION_EPC config for ULC4_6_EPC1
Found STATION_EPC config for ULC3_6_EPC1
Found STATION_EPC config for ULC1_12_EPC2
Found STATION_EPC config for ULC1_3_EPC2
Found STATION_EPC config for ULC2_12_EPC2
Found STATION_EPC config for ULC2_3_EPC2
Found STATION_EPC config for ULC3_3_EPC2
Found STATION_EPC config for ULC4_6_EPC2
Found STATION_EPC config for ULC3_6_EPC2
Found ENCODER config for ULC1_10_ENCODER (upstream: NO_UPSTREAM, downstream: ULC1_11_VFD1.CTRL)
Found ENCODER config for ULC1_11_ENCODER (upstream: ULC1_10_VFD1.CTRL, downstream: ULC1_12_VFD1.CTRL)
Found ENCODER config for ULC1_12_ENCODER (upstream: ULC1_11_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for ULC2_10_ENCODER (upstream: NO_UPSTREAM, downstream: ULC2_11_VFD1.CTRL)
Found ENCODER config for ULC2_11_ENCODER (upstream: ULC2_10_VFD1.CTRL, downstream: ULC2_12_VFD1.CTRL)
Found ENCODER config for ULC2_12_ENCODER (upstream: ULC2_11_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for ULC3_3_ENCODER (upstream: NO_UPSTREAM, downstream: ULC3_4_VFD1.CTRL)
Found ENCODER config for ULC4_3_ENCODER (upstream: NO_UPSTREAM, downstream: ULC4_4_VFD1.CTRL)
Found ENCODER config for ULC4_6_ENCODER (upstream: NO_UPSTREAM, downstream: NO_DOWNSTREAM)
Found ENCODER config for ULC3_6_ENCODER (upstream: NO_UPSTREAM, downstream: NO_DOWNSTREAM)
Found ENCODER config for ULC4_4_ENCODER (upstream: ULC4_3_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found JPE config for ULC1_10_TPE1 (missing station, missing beacon)
Found JPE config for ULC1_10_TPE2 (missing station, missing beacon)
Found JPE config for ULC1_11_TPE1 (missing station, missing beacon)
Found JPE config for ULC1_12_TPE1 (missing station, missing beacon)
Found JPE config for ULC1_4_TPE1 (missing station)
Found JPE config for ULC2_10_TPE1 (missing station, missing beacon)
Found JPE config for ULC2_10_TPE2 (missing station, missing beacon)
Found JPE config for ULC2_11_TPE1 (missing station, missing beacon)
Found JPE config for ULC2_12_TPE1 (missing station, missing beacon)
Found JPE config for ULC2_4_TPE1 (missing station)
Found JPE config for ULC2_8_TPE2 (missing station, missing beacon)
Found JPE config for ULC3_3_JPE1 (missing station)
Found JPE config for ULC4_3_JPE1 (missing station)
Found JPE config for ULC4_6_TPE1 (missing station)
Found JPE config for ULC1_8_TPE1 (missing station, missing beacon)
Found JPE config for ULC1_8_TPE2 (missing station, missing beacon)
Found JPE config for ULC2_6_TPE1 (missing station, missing beacon)
Found JPE config for ULC2_8_TPE1 (missing station, missing beacon)
Found JPE config for ULC3_6_TPE2
Found JPE config for ULC1_6_TPE1 (missing station, missing beacon)
Found JPE config for ULC1_5_TPE1 (missing station, missing beacon)
Found JPE config for ULC2_5_TPE1 (missing station, missing beacon)
Found JPE config for ULC3_4_JPE1 (missing station, missing beacon)
Found JPE config for ULC3_6_TPE1
Found JPE config for ULC4_4_JPE1 (missing beacon)
Found JPE config for ULC4_6_TPE2 (missing station)
Found JPE config for ULC1_4_TPE2 (missing station)
Found JPE config for ULC2_4_TPE2 (missing station)
Found JPE config for ULC3_3_JPE2 (missing station)
Found JPE config for ULC4_3_JPE2 (missing station)
FIOM PDP1_FIOM1 -> DPM DPM1_ULC3_6
FIOM ULC1_4_FIO1 -> DPM DPM1_ULC1_8
FIOM ULC2_4_FIO1 -> DPM DPM1_ULC2_8
FIOM ULC3_4_FIO1 -> DPM DPM1_ULC3_6
FIOM ULC3_6_FIO1 -> DPM DPM1_ULC3_6
FIOM ULC4_4_FIO1 -> DPM DPM1_ULC3_6
FIOM ULC4_6_FIO1 -> DPM DPM1_ULC3_6
FIOH PDP1_FIOH1 -> FIO PDP1_FIOM1
APF ULC1_3_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_4_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_5_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_6_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_7_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_8_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_9A_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_9B_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_10_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_11_VFD1 -> DPM DPM1_ULC1_8
APF ULC1_12_VFD1 -> DPM DPM1_ULC1_8
APF ULC2_3_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_4_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_5_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_6_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_7_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_8_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_9A_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_9B_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_10_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_11_VFD1 -> DPM DPM1_ULC2_8
APF ULC2_12_VFD1 -> DPM DPM1_ULC2_8
APF ULC3_3_VFD1 -> DPM DPM1_ULC3_6
APF ULC3_4_VFD1 -> DPM DPM1_ULC3_6
APF ULC3_6_VFD1 -> DPM DPM1_ULC3_6
APF ULC4_3_VFD1 -> DPM DPM1_ULC3_6
APF ULC4_4_VFD1 -> DPM DPM1_ULC3_6
APF ULC4_6_VFD1 -> DPM DPM1_ULC3_6
- Added 16 E-stop check rungs
[R090_STATION_JR_PB] Starting STATION_JR_PB routine generation...
Found 8 STATION_JR_PB configurations
Generated 8 STATION_JR_PB rungs
[R0100_JPE] Starting JPE routine generation...
Found 30 JPE configurations
Generated 30 JPE rungs
[R101_FPE] Starting FPE routine generation...
Found 4 FPE configurations
Generated 4 FPE rungs
Belt tracking for ULC1_3_VFD1 -> zzz_ULC1_3Tracking
Belt tracking for ULC1_4_VFD1 -> zzz_ULC1_4Tracking
Belt tracking for ULC1_5_VFD1 -> zzz_ULC1_5Tracking
Belt tracking for ULC1_6_VFD1 -> zzz_ULC1_6Tracking
Belt tracking for ULC1_7_VFD1 -> zzz_ULC1_7Tracking
Belt tracking for ULC1_8_VFD1 -> zzz_ULC1_8Tracking
Belt tracking for ULC1_9A_VFD1 -> zzz_ULC1_9ATracking
Belt tracking for ULC1_9B_VFD1 -> zzz_ULC1_9BTracking
Belt tracking for ULC1_10_VFD1 -> zzz_ULC1_10Tracking
Belt tracking for ULC1_11_VFD1 -> zzz_ULC1_11Tracking
Belt tracking for ULC1_12_VFD1 -> zzz_ULC1_12Tracking
Belt tracking for ULC2_3_VFD1 -> zzz_ULC2_3Tracking
Belt tracking for ULC2_4_VFD1 -> zzz_ULC2_4Tracking
Belt tracking for ULC2_5_VFD1 -> zzz_ULC2_5Tracking
Belt tracking for ULC2_6_VFD1 -> zzz_ULC2_6Tracking
Belt tracking for ULC2_7_VFD1 -> zzz_ULC2_7Tracking
Belt tracking for ULC2_8_VFD1 -> zzz_ULC2_8Tracking
Belt tracking for ULC2_9A_VFD1 -> zzz_ULC2_9ATracking
Belt tracking for ULC2_9B_VFD1 -> zzz_ULC2_9BTracking
Belt tracking for ULC2_10_VFD1 -> zzz_ULC2_10Tracking
Belt tracking for ULC2_11_VFD1 -> zzz_ULC2_11Tracking
Belt tracking for ULC2_12_VFD1 -> zzz_ULC2_12Tracking
Belt tracking for ULC3_3_VFD1 -> zzz_ULC3_3Tracking
Belt tracking for ULC3_4_VFD1 -> zzz_ULC3_4Tracking
Belt tracking for ULC3_6_VFD1 -> zzz_ULC3_6Tracking
Belt tracking for ULC4_3_VFD1 -> zzz_ULC4_3Tracking
Belt tracking for ULC4_4_VFD1 -> zzz_ULC4_4Tracking
Belt tracking for ULC4_6_VFD1 -> zzz_ULC4_6Tracking
- Added 28 belt tracking AOI calls
Created safety tag mapping file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01/SafetyTagMapping.txt
=== Step 2: Routines Generator stderr ===
[16:36:11] [INFO] [logging_config.py:128:_log_with_context] Logging to file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/logs/workflow_SAT9_MCM01_20250901_163606.log
[16:36:11] [INFO] [logging_config.py:128:_log_with_context] === Generating All PLC Artifacts ===
[16:36:11] [INFO] [logging_config.py:128:_log_with_context] Generating SafetyProgram L5X...
[16:36:11] [WARNING] [logging_config.py:128:_log_with_context] LimitedSafetyProgramGenerator is deprecated; using ModernSafetyProgramGenerator
[16:36:11] [INFO] [logging_config.py:128:_log_with_context] Starting ModernSafetyProgramGenerator generation
[16:36:11] [DEBUG] [logging_config.py:128:_log_with_context] Creating SafetyProgram XML structure
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: main_routine (core)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: apf (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: belt_tracking (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: cb_monitor (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: d2c_chute (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: dpm (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: encoder (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estops (safety)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estop_check (safety)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: extendo (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fioh (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fiom (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: flow_ctrl (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fpe (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: inputs (safety)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: jpe (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: mcm (core)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: outputs (safety)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pb_chute (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pmm (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: rack (core)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: resets (safety)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: safety_tag_map (core)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: speed_ctrl (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_epc (safety)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_chute (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_pb (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_ss_pb (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_s_pb (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: taching_belts (device)
[16:36:11] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: zones (safety)
[16:36:11] [INFO] [logging_config.py:128:_log_with_context] Generating safety routines...
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: inputs
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: inputs
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: outputs
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: outputs
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: resets
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: resets
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: zones
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC1_12: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC1_3: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC2_12: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC2_3: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC3_3: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC3_6: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC4_3: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for ULC4_6: {'EPC2', 'EPC1'}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Available DCS controllers: {'ULC1_12': {'EPC2', 'EPC1'}, 'ULC1_3': {'EPC2', 'EPC1'}, 'ULC2_12': {'EPC2', 'EPC1'}, 'ULC2_3': {'EPC2', 'EPC1'}, 'ULC3_3': {'EPC2', 'EPC1'}, 'ULC3_6': {'EPC2', 'EPC1'}, 'ULC4_3': {'EPC2', 'EPC1'}, 'ULC4_6': {'EPC2', 'EPC1'}}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-01 candidates: ['ULC1_1']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_1 in zone 01-01
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-02 candidates: ['ULC1_1', 'ULC1_3', 'ULC1_4', 'ULC1_5', 'ULC1_6']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_1 in zone 01-02
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_4 in zone 01-02
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_5 in zone 01-02
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_6 in zone 01-02
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-03 candidates: ['ULC1_6', 'ULC1_7', 'ULC1_8', 'ULC1_9', 'ULC1_10', 'ULC1_11', 'ULC1_12']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_6 in zone 01-03
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_7 in zone 01-03
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_8 in zone 01-03
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_9 in zone 01-03
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_10 in zone 01-03
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC1_11 in zone 01-03
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-04 candidates: ['ULC2_1']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_1 in zone 01-04
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-05 candidates: ['ULC2_1', 'ULC2_3', 'ULC2_4', 'ULC2_5', 'ULC2_6']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_1 in zone 01-05
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_4 in zone 01-05
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_5 in zone 01-05
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_6 in zone 01-05
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-06 candidates: ['ULC2_6', 'ULC2_7', 'ULC2_8', 'ULC2_9', 'ULC2_10', 'ULC2_11', 'ULC2_12']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_6 in zone 01-06
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_7 in zone 01-06
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_8 in zone 01-06
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_9 in zone 01-06
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_10 in zone 01-06
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC2_11 in zone 01-06
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-07 candidates: ['ULC3_1']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC3_1 in zone 01-07
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-08 candidates: ['ULC3_1', 'ULC3_3', 'ULC3_4']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC3_1 in zone 01-08
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC3_4 in zone 01-08
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-09 candidates: ['ULC3_4', 'ULC3_5', 'ULC3_6']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC3_4 in zone 01-09
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC3_5 in zone 01-09
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-10 candidates: ['ULC4_1']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC4_1 in zone 01-10
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-11 candidates: ['ULC4_1', 'ULC4_3', 'ULC4_4']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC4_1 in zone 01-11
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC4_4 in zone 01-11
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Zone 01-12 candidates: ['ULC4_4', 'ULC4_5', 'ULC4_6']
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC4_4 in zone 01-12
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base ULC4_5 in zone 01-12
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: zones
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estops
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estops
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Safety routine generation results: {'inputs': True, 'outputs': True, 'resets': True, 'zones': True, 'estops': True}
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag map with 17 tags
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] Routines created (6): MainRoutine, R010_INPUTS, R011_OUTPUTS, R012_RESETS, R020_ESTOPS, R030_ZONES
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R010_INPUTS: 47 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS);
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R011_OUTPUTS: 8 rungs | example: XIC(EStop_MCM_OK)XIC(EStop_01_02_OK)[OTE(ULC1_3_VFD1:SO.STOOutput),OTE(ULC1_4_VFD1:SO.STOOutput),OTE(ULC1_5_VFD1:SO.STOOutput),OTE(ULC1_6_VFD1:SO.STOOutput)];
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R012_RESETS: 16 rungs | example: [XIC(SFT_ULC1_3_SS1_SPB) ,XIC(SFT_MCM_S_PB)]OTE(RST_ULC1_3_EPC1_ESTOP);
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R030_ZONES: 13 rungs | example: OTE(EStop_01_01_OK);
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R020_ESTOPS: 16 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);
[16:36:12] [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) ];
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernSafetyProgramGenerator generation
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Written ModernSafetyProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01/SafetyProgram_Generated.L5X
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] SafetyProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01/SafetyProgram_Generated.L5X
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Generating MainProgram L5X...
[16:36:12] [WARNING] [logging_config.py:128:_log_with_context] LimitedMainProgramGenerator is deprecated; using ModernMainProgramGenerator
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Starting ModernMainProgramGenerator generation
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Creating MainProgram XML structure
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Adding controller tags...
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Extracting FPE data
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: FPE count=4
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing ULC1_2_PE1 base=ULC1_2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for ULC1_2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE ULC1_2_PE1: conveyor=ULC1_2_VFD1.CTRL parent_fault=ULC1_2_VFD1:I.ConnectionFaulted input=ULC1_3_VFD1:I.In_2 beacon=ULC1_2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing ULC2_2_PE1 base=ULC2_2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for ULC2_2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE ULC2_2_PE1: conveyor=ULC2_2_VFD1.CTRL parent_fault=ULC2_2_VFD1:I.ConnectionFaulted input=ULC2_3_VFD1:I.In_2 beacon=ULC2_2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing ULC4_7_PE1 base=ULC4_7
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for ULC4_7
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE ULC4_7_PE1: conveyor=ULC4_7_VFD1.CTRL parent_fault=ULC4_7_VFD1:I.ConnectionFaulted input=ULC4_6_VFD1:I.In_3 beacon=ULC4_7_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing ULC3_7_PE1 base=ULC3_7
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for ULC3_7
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] FPE ULC3_7_PE1: conveyor=ULC3_7_VFD1.CTRL parent_fault=ULC3_7_VFD1:I.ConnectionFaulted input=ULC3_6_VFD1:I.In_3 beacon=ULC3_7_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: FPE configs=4
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Extracting PMM data
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: PMM entries=1
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] PMM processing PDP1_PMM1
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP1_PMM1 DPM=DPM1_ULC3_6
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP1_PMM1 PWM fault IO PDP1_FIOM1:I.Pt12.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP1_PMM1 configuration stored
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: PMM configs=1
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Extracting CB_MONITOR data
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: CB PDPs=1
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] CB_MONITOR PDP1: CBs=26 FIOs=2
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] CB_MONITOR PDP1: configured CBs=26 positions=[1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26] fault=PDP1_FIOH1:I.ConnectionFaulted
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: CB configs=1
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] Tags created: total=305 | standard=33 safety=95 dcs=17 modules=152
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Added 305 controller tags
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Generating main program routines...
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: mcm
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: mcm
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: rack
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: rack
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: dpm
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: dpm
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fiom
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fiom
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fioh
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fioh
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: apf
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: apf
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: flow_ctrl
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: flow_ctrl
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Extracting SPEED_CTRL data
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL VFDs=28
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] SPEED_CTRL sample=ULC1_3_VFD1, ULC1_4_VFD1, ULC1_5_VFD1, ULC1_6_VFD1, ULC1_7_VFD1...
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL count=28
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: speed_ctrl
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: speed_ctrl
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estop_check
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estop_check
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: encoder
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: encoder
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: safety_tag_map
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: RST data has 17 rows
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: MCM01 -> Local:5:I.Data.0
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC1_12_S2_PB -> ULC1_10_VFD1:I.IO_0
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC1_12_S1_PB -> ULC1_12_VFD1:I.IO_0
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC1_3_SS2_SPB -> ULC1_3_VFD1:I.IO_0
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC2_12_S2_PB -> ULC2_10_VFD1:I.IO_0
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC2_12_S1_PB -> ULC2_12_VFD1:I.IO_0
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC2_3_SS2_SPB -> ULC2_3_VFD1:I.IO_0
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC1_3_SS1_SPB -> ULC1_4_FIO1:I.Pt02.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC2_3_SS1_SPB -> ULC2_4_FIO1:I.Pt02.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC3_3_SS1_SPB -> ULC3_4_FIO1:I.Pt08.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC3_3_SS2_SPB -> ULC3_4_FIO1:I.Pt12.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC3_6_SS1_SPB -> ULC3_6_FIO1:I.Pt08.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC3_6_SS2_SPB -> ULC3_6_FIO1:I.Pt12.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC4_3_SS1_SPB -> ULC4_4_FIO1:I.Pt08.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC4_3_SS2_SPB -> ULC4_4_FIO1:I.Pt12.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC4_6_SS1_SPB -> ULC4_6_FIO1:I.Pt10.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: ULC4_6_SS2_SPB -> ULC4_6_FIO1:I.Pt14.Data
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generating 17 rungs
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 1: XIC(Local:5:I.Data.0)OTE(MCM01);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 2: XIC(ULC1_4_FIO1:I.Pt02.Data)OTE(ULC1_3_SS1_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 3: XIC(ULC1_3_VFD1:I.IO_0)OTE(ULC1_3_SS2_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 4: XIC(ULC1_12_VFD1:I.IO_0)OTE(ULC1_12_S1_PB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 5: XIC(ULC1_10_VFD1:I.IO_0)OTE(ULC1_12_S2_PB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 6: XIC(ULC2_4_FIO1:I.Pt02.Data)OTE(ULC2_3_SS1_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 7: XIC(ULC2_3_VFD1:I.IO_0)OTE(ULC2_3_SS2_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 8: XIC(ULC2_12_VFD1:I.IO_0)OTE(ULC2_12_S1_PB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 9: XIC(ULC2_10_VFD1:I.IO_0)OTE(ULC2_12_S2_PB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 10: XIC(ULC3_4_FIO1:I.Pt08.Data)OTE(ULC3_3_SS1_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 11: XIC(ULC3_4_FIO1:I.Pt12.Data)OTE(ULC3_3_SS2_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 12: XIC(ULC3_6_FIO1:I.Pt08.Data)OTE(ULC3_6_SS1_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 13: XIC(ULC3_6_FIO1:I.Pt12.Data)OTE(ULC3_6_SS2_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 14: XIC(ULC4_4_FIO1:I.Pt08.Data)OTE(ULC4_3_SS1_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 15: XIC(ULC4_4_FIO1:I.Pt12.Data)OTE(ULC4_3_SS2_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 16: XIC(ULC4_6_FIO1:I.Pt10.Data)OTE(ULC4_6_SS1_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 17: XIC(ULC4_6_FIO1:I.Pt14.Data)OTE(ULC4_6_SS2_SPB);
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generated 17 total rungs
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: safety_tag_map
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_jr_pb
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_jr_pb
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_s_pb
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_s_pb
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_ss_pb
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_ss_pb
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_epc
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_epc
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: jpe
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: jpe
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fpe
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fpe
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: pmm
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: pmm
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: cb_monitor
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: cb_monitor
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: belt_tracking
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: belt_tracking
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: main_routine
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Generating MainRoutine with JSR calls
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated MainRoutine
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: main_routine
[16:36:12] [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': True, 'pmm': True, 'cb_monitor': True, 'belt_tracking': True, 'main_routine': True}
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] Routines created (21): 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, R095_STATION_S_PB, R096_STATION_SS_PB, R097_STATION_EPC, R100_JPE, R101_FPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R010_MCM: 2 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R011_RACK: 2 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R020_DPM: 4 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R030_FIOM: 8 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R031_FIOH: 2 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R040_APF: 29 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R050_FLOW_CTRL: 24 rungs | example: XIC(ULC1_4_VFD1.CTRL.STS.Enabled)OTE(ULC1_3_VFD1.CTRL.CMD.Interlock);
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R051_SPEED_CTRL: 1 rungs | example: [MOVE(Speed_350_FPM,ULC1_3_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,ULC1_4_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,ULC1_5_VFD1.CTRL.CMD.Speed_FPM) ,...
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R120_ESTOP_CHECK: 16 rungs | example: [XIO(ULC1_3_VFD1:SI.In00Data) ,XIO(ULC1_3_VFD1:SI.In01Data) ]XIO(ULC1_3_VFD1:SO.STOOutput)XIO(ULC1_4_VFD1:SO.STOOutput)XIO(ULC1_5_VFD1:SO.STOOutput)XIO(ULC1_...
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R080_ENCODER: 11 rungs | example: AOI_ENCODER(ULC1_10_ENCODER.AOI,ULC1_10_ENCODER.HMI,ULC1_10_ENCODER.CTRL,ULC1_10_VFD1.CTRL,NO_UPSTREAM,ULC1_11_VFD1.CTRL,ULC1_10_VFD1:I.In_1,ULC1_10_VFD1:I.C...
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R130_SAFETY_TAG_MAP: 18 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R090_STATION_JR_PB: 8 rungs | example: AOI_STATION_JR_PB(ULC1_7_JR1_PB.AOI,ULC1_7_JR1_PB.HMI,ULC1_7_JR1_PB.CTRL,NO_PARTNER,ULC1_7_VFD1:I.IO_0,ULC1_7_VFD1:O.IO_1)MOVE(ULC1_7_JR1_PB.CTRL.STS.Log,ULC...
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R095_STATION_S_PB: 4 rungs | example: AOI_STATION_S_PB(ULC1_12_S1_PB_STATION.AOI,ULC1_12_S1_PB_STATION.HMI,ULC1_12_S1_PB_STATION.CTRL,ULC1_12_VFD1.CTRL,ULC1_12_VFD1:I.IO_0,ULC1_12_VFD1:O.IO_1);
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R096_STATION_SS_PB: 12 rungs | example: AOI_STATION_SS_PB(ULC1_3_SS1_STATION.AOI,ULC1_3_SS1_STATION.HMI,ULC1_3_SS1_STATION.CTRL,ULC1_3_VFD1.CTRL,ULC1_4_FIO1:I.ConnectionFaulted,ULC1_4_FIO1:I.Pt02.D...
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R097_STATION_EPC: 14 rungs | example: AOI_STATION_EPC(ULC1_12_EPC1_STATION.AOI,MCM.CTRL,ULC1_12_EPC1_STATION.HMI,ULC1_12_S2_PB_STATION.CTRL,ULC1_12_VFD1:I.ConnectionFaulted,ULC1_12_VFD1:SI.In00Da...
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R100_JPE: 30 rungs | example: AOI_JPE(ULC1_10_TPE1.AOI,ULC1_10_TPE1.HMI,ULC1_10_TPE1.CTRL,ULC1_10_VFD1.CTRL,?,ULC1_10_VFD1:I.ConnectionFaulted,ULC1_10_VFD1:I.In_2,YES,?);
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R101_FPE: 4 rungs | example: AOI_FPE(ULC1_2_PE1.AOI,ULC1_2_PE1.HMI,ULC1_2_PE1.CTRL,ULC1_2_VFD1.CTRL,ULC1_2_VFD1:I.ConnectionFaulted,ULC1_3_VFD1:I.In_2,ULC1_2_FIOH1:O.ProcessDataOut.Conne...
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R060_PMM: 2 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - R070_CB_MONITOR: 2 rungs | example: NOP();
[16:36:12] [INFO] [logging_config.py:126:_log_with_context] - ZZZ_BeltTracking: 29 rungs | example: NOP();
[16:36:12] [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(...
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernMainProgramGenerator generation
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Written ModernMainProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01/MainProgram_Generated.L5X
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] MainProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01/MainProgram_Generated.L5X
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] Generating safety tag mapping...
[16:36:12] [DEBUG] [logging_config.py:128:_log_with_context] Creating MappingWriter wrapper
[16:36:12] [DEBUG] [logging_config.py:126:_log_with_context] Creating DataLoader instance
[16:36:12] [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_MCM01/SafetyTagMapping.txt
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] - Safety tags: 17
[16:36:12] [INFO] [logging_config.py:128:_log_with_context] === All artifacts generated successfully! ===
{"level": "INFO", "message": "Routine generation completed successfully", "timestamp": "2025-09-01T16:36:12.883578", "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_MCM01
- 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 28 APF modules
Found 3 DPM modules
Found 1 PMM modules
Created 7 IOLM modules with boilerplate selection:
Device 'PDP1_FIOM1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
PDP1_FIOM1 (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 'ULC1_4_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
ULC1_4_FIO1 (FIO D2CMaster): Using module-specific boilerplate ULC1_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC1_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC1_4_FIO1_Module.L5X
Device 'ULC2_4_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
ULC2_4_FIO1 (FIO D2CMaster): Using module-specific boilerplate ULC2_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC2_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC2_4_FIO1_Module.L5X
Device 'ULC3_4_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
ULC3_4_FIO1 (FIO D2CMaster): Using module-specific boilerplate ULC3_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC3_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC3_4_FIO1_Module.L5X
Device 'ULC3_6_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
ULC3_6_FIO1 (FIO D2CMaster): Using module-specific boilerplate ULC3_6_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC3_6_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC3_6_FIO1_Module.L5X
Device 'ULC4_4_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
ULC4_4_FIO1 (FIO D2CMaster): Using module-specific boilerplate ULC4_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC4_4_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC4_4_FIO1_Module.L5X
Device 'ULC4_6_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
ULC4_6_FIO1 (FIO D2CMaster): Using module-specific boilerplate ULC4_6_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC4_6_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ULC4_6_FIO1_Module.L5X
Device 'ULC1_10_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 'ULC1_11_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 'ULC1_12_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 'ULC1_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 'ULC1_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 'ULC1_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Device 'ULC1_6_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 'ULC1_7_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 'ULC1_8_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 'ULC1_9A_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 'ULC1_9B_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 'ULC2_10_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 'ULC2_11_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 'ULC2_12_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 'ULC2_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 'ULC2_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 'ULC2_5_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Device 'ULC2_6_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 'ULC2_7_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 'ULC2_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 'ULC2_9A_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 'ULC2_9B_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 'ULC3_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 'ULC3_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Device 'ULC3_6_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 'ULC4_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 'ULC4_4_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_7_5_HP.L5X
Device 'ULC4_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
Successfully loaded boilerplate: SAT9_boilerplate/PMM_Module.L5X
PDP1_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 base: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/IO Tree Configuration Generator/BaseProgram.L5X
Archived old L5X: SAT9_MCM01_20250901_163432.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_MCM01/SAT9_MCM01_20250901_163616.L5X
Single file generation complete
- ['/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01/SAT9_MCM01_20250901_163616.L5X']
=== Step 3 Batch Script Creation ===
Creating project folder compilation for: SAT9_MCM01
Source L5X: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01/SAT9_MCM01_20250901_163616.L5X
Project directory: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM01
Generated batch file: compile_SAT9_MCM01.bat
SUCCESS: Project compilation ready!
To compile on Windows:
cd "C:\\Users\\ilia.gurielidze\\Projects\\PLC Generation\\generated_projects\\SAT9_MCM01"
compile_SAT9_MCM01.bat