PLC_Generation/logs/workflow_SAT9_MCM04_20250904_205351.log
2025-09-04 22:37:52 +04:00

1019 lines
147 KiB
Plaintext

{"level": "INFO", "message": "PLC Generation Workflow started", "timestamp": "2025-09-04T20:53:51.530353", "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_MCM04.xlsx", "project_name": "SAT9_MCM04"}
{"level": "INFO", "message": "Starting data processing step", "timestamp": "2025-09-04T20:53:51.530654", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
=== Step 1: PLC Data Generator stdout ===
Loading IO path mappings...
Loaded IO path mappings:
APF: 11 rows
M12DR: 16 rows
Hub: 16 rows
SorterHub: 16 rows
SIO: 16 rows
IB16: 16 rows
OB16E: 16 rows
IB16S: 16 rows
Available sheets: ['DESC_PLC', 'NETWORK_PLC']
Found DESC sheet: DESC_PLC
Found NETWORK sheet: NETWORK_PLC
DESC columns: ['TAGNAME', 'TERM', 'DESCA', 'DESCB']
NETWORK columns: ['DPM', 'DPM_IP', 'Name', 'PartNumber', 'IP']
Classifying signals and adding IO paths...
Signal classification results:
SPARE: 222
I: 162
O: 121
IOLink: 83
Device type distribution:
M12DR: 464
APF: 44
Hub: 32
IB16: 16
OB16E: 16
IB16S: 16
IO Path mapping results:
Successful mappings: 588/588 (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: ['DPM01_VS01A', 'DPM02_VS01A', 'DPM02_VS01C', 'DPM03_VS01A', 'DPM04_VS01A', 'DPM05_VS01A']
================================================================================
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 671 rows
Sample of merged data:
TAGNAME TERM DESCA ... SIGNAL DEVICE_TYPE IO_PATH
0 SLOT5_IB16 I0 MCM05 ... I IB16 Local:5:I.Data.0
1 SLOT5_IB16 I1 MCM05 ... I IB16 Local:5:I.Data.1
2 SLOT5_IB16 I10 SPARE ... SPARE IB16 Local:5:I.Data.10
3 SLOT5_IB16 I11 SPARE ... SPARE IB16 Local:5:I.Data.11
4 SLOT5_IB16 I12 SPARE ... SPARE IB16 Local:5:I.Data.12
5 SLOT5_IB16 I13 SPARE ... SPARE IB16 Local:5:I.Data.13
6 SLOT5_IB16 I14 SPARE ... SPARE IB16 Local:5:I.Data.14
7 SLOT5_IB16 I15 SPARE ... SPARE IB16 Local:5:I.Data.15
8 SLOT5_IB16 I2 MCM05 ... I IB16 Local:5:I.Data.2
9 SLOT5_IB16 I3 MCM05 ... I IB16 Local:5:I.Data.3
[10 rows x 11 columns]
New Excel file created: SAT9_MCM04_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_MCM04.xlsx
DEBUG: Full project pattern matched: SAT9_MCM04
DEBUG: Final subsystem name: SAT9_MCM04
Reading input file: SAT9_MCM04_DESC_IP_MERGED.xlsx
Removed 83 IOLink rows (including beacons, FIOH channels, and all other IOLink entries)
Added 182 rows for beacon lights
Removed 83 blank name/description rows
Saving output file: SAT9_MCM04_OUTPUT.csv
Processing complete!
Created standard output file: DESC_IP_MERGED.xlsx
=== Step 1: PLC Data Generator stderr ===
=== Step 1 File Copy ===
Copied SAT9_MCM04_DESC_IP_MERGED.xlsx to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/DESC_IP_MERGED.xlsx
{"level": "INFO", "message": "Data processing completed successfully", "timestamp": "2025-09-04T20:53:54.433834", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Starting routine generation step", "timestamp": "2025-09-04T20:53:54.434184", "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_MCM04_20250904_205351.log", "timestamp": "2025-09-04T20:53:56.060605", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "=== Generating All PLC Artifacts ===", "timestamp": "2025-09-04T20:53:56.062652", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Generating SafetyProgram L5X...", "timestamp": "2025-09-04T20:53:56.062855", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "WARNING", "message": "LimitedSafetyProgramGenerator is deprecated; using ModernSafetyProgramGenerator", "timestamp": "2025-09-04T20:53:56.072851", "module": "src.container", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Starting ModernSafetyProgramGenerator generation", "timestamp": "2025-09-04T20:53:56.073090", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Creating SafetyProgram XML structure", "timestamp": "2025-09-04T20:53:56.073253", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Registered plugin: main_routine (core)", "timestamp": "2025-09-04T20:53:56.084135", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: apf (device)", "timestamp": "2025-09-04T20:53:56.089540", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: belt_tracking (device)", "timestamp": "2025-09-04T20:53:56.093156", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: cb_monitor (device)", "timestamp": "2025-09-04T20:53:56.097589", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: d2c_chute (device)", "timestamp": "2025-09-04T20:53:56.101028", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: dpm (device)", "timestamp": "2025-09-04T20:53:56.104888", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: encoder (device)", "timestamp": "2025-09-04T20:53:56.108877", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: estops (safety)", "timestamp": "2025-09-04T20:53:56.116253", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: estop_check (safety)", "timestamp": "2025-09-04T20:53:56.119753", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: extendo (device)", "timestamp": "2025-09-04T20:53:56.122793", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: fioh (device)", "timestamp": "2025-09-04T20:53:56.126189", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: fiom (device)", "timestamp": "2025-09-04T20:53:56.129716", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: flow_ctrl (device)", "timestamp": "2025-09-04T20:53:56.132792", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: fpe (device)", "timestamp": "2025-09-04T20:53:56.135794", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: inputs (safety)", "timestamp": "2025-09-04T20:53:56.139249", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: jpe (device)", "timestamp": "2025-09-04T20:53:56.143020", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: mcm (core)", "timestamp": "2025-09-04T20:53:56.146593", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: outputs (safety)", "timestamp": "2025-09-04T20:53:56.150011", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: pb_chute (device)", "timestamp": "2025-09-04T20:53:56.153589", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: pmm (device)", "timestamp": "2025-09-04T20:53:56.157021", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: rack (core)", "timestamp": "2025-09-04T20:53:56.160290", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: resets (safety)", "timestamp": "2025-09-04T20:53:56.164320", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: safety_tag_map (core)", "timestamp": "2025-09-04T20:53:56.168104", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: safety_tag_mapping (safety)", "timestamp": "2025-09-04T20:53:56.171748", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: speed_ctrl (device)", "timestamp": "2025-09-04T20:53:56.175346", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: station_epc (safety)", "timestamp": "2025-09-04T20:53:56.179187", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: station_jr_chute (device)", "timestamp": "2025-09-04T20:53:56.182940", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: station_jr_pb (device)", "timestamp": "2025-09-04T20:53:56.186579", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: station_ss_pb (device)", "timestamp": "2025-09-04T20:53:56.190187", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: station_s_pb (device)", "timestamp": "2025-09-04T20:53:56.193811", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: taching_belts (device)", "timestamp": "2025-09-04T20:53:56.197568", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "DEBUG", "message": "Registered plugin: zones (safety)", "timestamp": "2025-09-04T20:53:56.202476", "module": "src.plugin_system", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "plugin_discovery"}
{"level": "INFO", "message": "Generating safety routines...", "timestamp": "2025-09-04T20:53:56.202685", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: inputs", "timestamp": "2025-09-04T20:53:56.866331", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: inputs", "timestamp": "2025-09-04T20:53:56.870662", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: outputs", "timestamp": "2025-09-04T20:53:56.873563", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Zones: subsystem key", "timestamp": "2025-09-04T20:53:56.874988", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "subsystem": "DEFAULT", "found": false}
{"level": "DEBUG", "message": "Zones: heuristic best match", "timestamp": "2025-09-04T20:53:56.884847", "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": "MCM04", "score": 6}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-04T20:53:56.885490", "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": 3}
{"level": "INFO", "message": "Successfully generated routine: outputs", "timestamp": "2025-09-04T20:53:56.885952", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: resets", "timestamp": "2025-09-04T20:53:56.886111", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: resets", "timestamp": "2025-09-04T20:53:56.887526", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: zones", "timestamp": "2025-09-04T20:53:56.887692", "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 BYAB_3: {'EPC2', 'EPC1'}", "timestamp": "2025-09-04T20:53:56.888457", "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 BYCB_3: {'EPC2', 'EPC1'}", "timestamp": "2025-09-04T20:53:56.888734", "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: {'BYAB_3': {'EPC2', 'EPC1'}, 'BYCB_3': {'EPC2', 'EPC1'}}", "timestamp": "2025-09-04T20:53:56.888863", "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 04-01 candidates: ['BYAB_2', 'BYAB_3']", "timestamp": "2025-09-04T20:53:56.889240", "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 BYAB_2 in zone 04-01", "timestamp": "2025-09-04T20:53:56.889381", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:53:56.889506", "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": "04-01", "interlock": "MCM04", "dcs_list": ["BYAB_3_EPC1_DCS_CTRL.O1", "BYAB_3_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 04-02 candidates: ['BYCB_2', 'BYCB_3']", "timestamp": "2025-09-04T20:53:56.889768", "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 BYCB_2 in zone 04-02", "timestamp": "2025-09-04T20:53:56.889893", "module": "src.routines.zones", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Zones: rung", "timestamp": "2025-09-04T20:53:56.890007", "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": "04-02", "interlock": "MCM04", "dcs_list": ["BYCB_3_EPC1_DCS_CTRL.O1", "BYCB_3_EPC2_DCS_CTRL.O1"]}
{"level": "INFO", "message": "Successfully generated routine: zones", "timestamp": "2025-09-04T20:53:56.890129", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: estops", "timestamp": "2025-09-04T20:53:56.890249", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: estops", "timestamp": "2025-09-04T20:53:56.891080", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Safety routine generation results: {'inputs': True, 'outputs': True, 'resets': True, 'zones': True, 'estops': True}", "timestamp": "2025-09-04T20:53:56.891273", "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 4 tags", "timestamp": "2025-09-04T20:53:56.894413", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Routines created (6): MainRoutine, R010_INPUTS, R011_OUTPUTS, R012_RESETS, R020_ESTOPS, R030_ZONES", "timestamp": "2025-09-04T20:53:56.894734", "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: 13 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS);", "timestamp": "2025-09-04T20:53:56.894925", "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: 2 rungs | example: XIC(EStop_MCM_OK)XIC(EStop_04_01_OK)[OTE(BYAB_2_VFD1:SO.STOOutput),OTE(BYAB_3_VFD1:SO.STOOutput)];", "timestamp": "2025-09-04T20:53:56.895058", "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: 4 rungs | example: [XIC(SFT_BYAB_3_SS1_SPB) ,XIC(SFT_MCM_S_PB)]OTE(RST_BYAB_3_EPC1_ESTOP);", "timestamp": "2025-09-04T20:53:56.895192", "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: 3 rungs | example: XIC(BYAB_3_EPC1_DCS_CTRL.O1)XIC(BYAB_3_EPC2_DCS_CTRL.O1)OTE(EStop_04_01_OK);", "timestamp": "2025-09-04T20:53:56.895333", "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: 5 rungs | example: DCS(MCM_EPB_DCS_CTRL,EMERGENCY STOP,EQUIVALENT - ACTIVE HIGH,500,MANUAL,AUTOMATIC,Local:7:I.Pt02.Data,Local:7:I.Pt03.Data,MCM_EPB_STATUS,SFT_MCM_S_PB);", "timestamp": "2025-09-04T20:53:56.895457", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- MainRoutine: 1 rungs | example: [JSR(R010_INPUTS,0) ,JSR(R011_OUTPUTS,0) ,JSR(R012_RESETS,0) ,JSR(R020_ESTOPS,0) ,JSR(R030_ZONES,0) ];", "timestamp": "2025-09-04T20:53:56.895586", "module": "ModernSafetyProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "Successfully completed ModernSafetyProgramGenerator generation", "timestamp": "2025-09-04T20:53:56.895700", "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_MCM04/SafetyProgram_Generated.L5X", "timestamp": "2025-09-04T20:53:56.897448", "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_MCM04/SafetyProgram_Generated.L5X", "timestamp": "2025-09-04T20:53:56.960051", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Generating MainProgram L5X...", "timestamp": "2025-09-04T20:53:56.960251", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "WARNING", "message": "LimitedMainProgramGenerator is deprecated; using ModernMainProgramGenerator", "timestamp": "2025-09-04T20:53:56.960480", "module": "src.container", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Starting ModernMainProgramGenerator generation", "timestamp": "2025-09-04T20:53:56.960795", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Creating MainProgram XML structure", "timestamp": "2025-09-04T20:53:56.960970", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Adding controller tags...", "timestamp": "2025-09-04T20:53:56.961171", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Zones: subsystem key", "timestamp": "2025-09-04T20:53:57.016041", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "subsystem": "DEFAULT", "found": false}
{"level": "DEBUG", "message": "Zones: heuristic best match", "timestamp": "2025-09-04T20:53:57.026142", "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": "MCM04", "score": 6}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-04T20:53:57.026716", "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": 3}
{"level": "DEBUG", "message": "Extracting FPE data", "timestamp": "2025-09-04T20:53:57.085855", "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=19", "timestamp": "2025-09-04T20:53:57.086749", "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 BYAB_4CH_PE1 base=BYAB_4CH", "timestamp": "2025-09-04T20:53:57.087090", "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 BYAB_4CH", "timestamp": "2025-09-04T20:53:57.087636", "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 BYAB_4CH_PE1: conveyor=BYAB_4CH_VFD1.CTRL parent_fault=BYAB_4CH_VFD1:I.ConnectionFaulted input=BYAB_3_FIO1:I.Pt02.Data beacon=BYAB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.088931", "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 BYAB_4CH_PE2 base=BYAB_4CH", "timestamp": "2025-09-04T20:53:57.089217", "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 BYAB_4CH", "timestamp": "2025-09-04T20:53:57.089698", "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 BYAB_4CH_PE2: conveyor=BYAB_4CH_VFD1.CTRL parent_fault=BYAB_4CH_VFD1:I.ConnectionFaulted input=BYAB_3_FIO1:I.Pt03.Data beacon=BYAB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.090913", "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 BYCB_4CH_PE1 base=BYCB_4CH", "timestamp": "2025-09-04T20:53:57.091165", "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 BYCB_4CH", "timestamp": "2025-09-04T20:53:57.091656", "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 BYCB_4CH_PE1: conveyor=BYCB_4CH_VFD1.CTRL parent_fault=BYCB_4CH_VFD1:I.ConnectionFaulted input=BYCB_3_FIO1:I.Pt02.Data beacon=BYCB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.092747", "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 BYCB_4CH_PE2 base=BYCB_4CH", "timestamp": "2025-09-04T20:53:57.093020", "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 BYCB_4CH", "timestamp": "2025-09-04T20:53:57.093472", "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 BYCB_4CH_PE2: conveyor=BYCB_4CH_VFD1.CTRL parent_fault=BYCB_4CH_VFD1:I.ConnectionFaulted input=BYCB_3_FIO1:I.Pt03.Data beacon=BYCB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.094541", "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 S013079_PE1 base=S013079_PE1", "timestamp": "2025-09-04T20:53:57.094828", "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 S013079_PE1", "timestamp": "2025-09-04T20:53:57.095255", "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 S013079_PE1: conveyor=S013079_PE1_VFD1.CTRL parent_fault=S013079_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH17:I.ProcessDataIn.Connector_2_A_Pin_4 beacon=S013079_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.096425", "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 S013079_PE2 base=S013079_PE2", "timestamp": "2025-09-04T20:53:57.096686", "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 S013079_PE2", "timestamp": "2025-09-04T20:53:57.097109", "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 S013079_PE2: conveyor=S013079_PE2_VFD1.CTRL parent_fault=S013079_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH17:I.ProcessDataIn.Connector_6_A_Pin_4 beacon=S013079_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.098217", "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 S013079_PE3 base=S013079_PE3", "timestamp": "2025-09-04T20:53:57.098492", "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 S013079_PE3", "timestamp": "2025-09-04T20:53:57.098957", "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 S013079_PE3: conveyor=S013079_PE3_VFD1.CTRL parent_fault=S013079_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH17:I.ProcessDataIn.Connector_6_B_Pin_2 beacon=S013079_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.100144", "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 S013085_PE1 base=S013085_PE1", "timestamp": "2025-09-04T20:53:57.100413", "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 S013085_PE1", "timestamp": "2025-09-04T20:53:57.100842", "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 S013085_PE1: conveyor=S013085_PE1_VFD1.CTRL parent_fault=S013085_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_2_A_Pin_4 beacon=S013085_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.102864", "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 S013083_PE1 base=S013083_PE1", "timestamp": "2025-09-04T20:53:57.103191", "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 S013083_PE1", "timestamp": "2025-09-04T20:53:57.103648", "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 S013083_PE1: conveyor=S013083_PE1_VFD1.CTRL parent_fault=S013083_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_4_A_Pin_4 beacon=S013083_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.104748", "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 S013085_PE2 base=S013085_PE2", "timestamp": "2025-09-04T20:53:57.105032", "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 S013085_PE2", "timestamp": "2025-09-04T20:53:57.105439", "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 S013085_PE2: conveyor=S013085_PE2_VFD1.CTRL parent_fault=S013085_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_6_A_Pin_4 beacon=S013085_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.106514", "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 S013085_PE3 base=S013085_PE3", "timestamp": "2025-09-04T20:53:57.106811", "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 S013085_PE3", "timestamp": "2025-09-04T20:53:57.107244", "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 S013085_PE3: conveyor=S013085_PE3_VFD1.CTRL parent_fault=S013085_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_6_B_Pin_2 beacon=S013085_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.108290", "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 S013083_PE2 base=S013083_PE2", "timestamp": "2025-09-04T20:53:57.108513", "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 S013083_PE2", "timestamp": "2025-09-04T20:53:57.108867", "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 S013083_PE2: conveyor=S013083_PE2_VFD1.CTRL parent_fault=S013083_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_8_A_Pin_4 beacon=S013083_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.109884", "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 S013083_PE3 base=S013083_PE3", "timestamp": "2025-09-04T20:53:57.110108", "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 S013083_PE3", "timestamp": "2025-09-04T20:53:57.110545", "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 S013083_PE3: conveyor=S013083_PE3_VFD1.CTRL parent_fault=S013083_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_8_B_Pin_2 beacon=S013083_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.111740", "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 S013087_PE1 base=S013087_PE1", "timestamp": "2025-09-04T20:53:57.112000", "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 S013087_PE1", "timestamp": "2025-09-04T20:53:57.112497", "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 S013087_PE1: conveyor=S013087_PE1_VFD1.CTRL parent_fault=S013087_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_1_A_Pin_4 beacon=S013087_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.113672", "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 S013081_PE1 base=S013081_PE1", "timestamp": "2025-09-04T20:53:57.113942", "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 S013081_PE1", "timestamp": "2025-09-04T20:53:57.114448", "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 S013081_PE1: conveyor=S013081_PE1_VFD1.CTRL parent_fault=S013081_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_3_A_Pin_4 beacon=S013081_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.116783", "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 S013087_PE2 base=S013087_PE2", "timestamp": "2025-09-04T20:53:57.117399", "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 S013087_PE2", "timestamp": "2025-09-04T20:53:57.118286", "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 S013087_PE2: conveyor=S013087_PE2_VFD1.CTRL parent_fault=S013087_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_5_A_Pin_4 beacon=S013087_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.119564", "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 S013087_PE3 base=S013087_PE3", "timestamp": "2025-09-04T20:53:57.119844", "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 S013087_PE3", "timestamp": "2025-09-04T20:53:57.120308", "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 S013087_PE3: conveyor=S013087_PE3_VFD1.CTRL parent_fault=S013087_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_5_B_Pin_2 beacon=S013087_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.121572", "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 S013081_PE2 base=S013081_PE2", "timestamp": "2025-09-04T20:53:57.121904", "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 S013081_PE2", "timestamp": "2025-09-04T20:53:57.122323", "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 S013081_PE2: conveyor=S013081_PE2_VFD1.CTRL parent_fault=S013081_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_7_A_Pin_4 beacon=S013081_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.123395", "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 S013081_PE3 base=S013081_PE3", "timestamp": "2025-09-04T20:53:57.123849", "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 S013081_PE3", "timestamp": "2025-09-04T20:53:57.124356", "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 S013081_PE3: conveyor=S013081_PE3_VFD1.CTRL parent_fault=S013081_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_7_B_Pin_2 beacon=S013081_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2", "timestamp": "2025-09-04T20:53:57.125484", "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=19", "timestamp": "2025-09-04T20:53:57.125656", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Extracting PMM data", "timestamp": "2025-09-04T20:53:57.125834", "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=0", "timestamp": "2025-09-04T20:53:57.126748", "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=0", "timestamp": "2025-09-04T20:53:57.126979", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Extracting CB_MONITOR data", "timestamp": "2025-09-04T20:53:57.127168", "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=0", "timestamp": "2025-09-04T20:53:57.128502", "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=0", "timestamp": "2025-09-04T20:53:57.128697", "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=146 | standard=8 safety=24 dcs=5 modules=101", "timestamp": "2025-09-04T20:53:57.129274", "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 146 controller tags", "timestamp": "2025-09-04T20:53:57.129480", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Generating main program routines...", "timestamp": "2025-09-04T20:53:57.129653", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: mcm", "timestamp": "2025-09-04T20:53:57.129827", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: mcm", "timestamp": "2025-09-04T20:53:57.129984", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: rack", "timestamp": "2025-09-04T20:53:57.130128", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: rack", "timestamp": "2025-09-04T20:53:57.130271", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: dpm", "timestamp": "2025-09-04T20:53:57.130434", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: dpm", "timestamp": "2025-09-04T20:53:57.131556", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: fiom", "timestamp": "2025-09-04T20:53:57.131801", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: fiom", "timestamp": "2025-09-04T20:53:57.134093", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: fioh", "timestamp": "2025-09-04T20:53:57.134417", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: fioh", "timestamp": "2025-09-04T20:53:57.135883", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: apf", "timestamp": "2025-09-04T20:53:57.136721", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: apf", "timestamp": "2025-09-04T20:53:57.138017", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: flow_ctrl", "timestamp": "2025-09-04T20:53:57.138619", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: flow_ctrl", "timestamp": "2025-09-04T20:53:57.139379", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Extracting SPEED_CTRL data", "timestamp": "2025-09-04T20:53:57.139579", "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=4", "timestamp": "2025-09-04T20:53:57.139997", "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=BYAB_2_VFD1, BYAB_3_VFD1, BYCB_2_VFD1, BYCB_3_VFD1", "timestamp": "2025-09-04T20:53:57.140266", "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=4", "timestamp": "2025-09-04T20:53:57.140409", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: speed_ctrl", "timestamp": "2025-09-04T20:53:57.140564", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: speed_ctrl", "timestamp": "2025-09-04T20:53:57.140809", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: estop_check", "timestamp": "2025-09-04T20:53:57.140987", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: estop_check", "timestamp": "2025-09-04T20:53:57.142086", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Plugin encoder cannot generate with current data", "timestamp": "2025-09-04T20:53:57.142738", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: safety_tag_map", "timestamp": "2025-09-04T20:53:57.143803", "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 5 rows", "timestamp": "2025-09-04T20:53:57.144193", "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: MCM05 -> Local:5:I.Data.0", "timestamp": "2025-09-04T20:53:57.144678", "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: BYAB_3_SS1_SPB -> BYAB_3_FIO1:I.Pt04.Data", "timestamp": "2025-09-04T20:53:57.145205", "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: BYAB_3_SS2_SPB -> BYAB_3_FIO1:I.Pt08.Data", "timestamp": "2025-09-04T20:53:57.145689", "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: BYCB_3_SS1_STPB -> BYCB_3_FIO1:I.Pt04.Data", "timestamp": "2025-09-04T20:53:57.146129", "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: BYCB_3_SS2_SPB -> BYCB_3_FIO1:I.Pt08.Data", "timestamp": "2025-09-04T20:53:57.146695", "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 5 rungs", "timestamp": "2025-09-04T20:53:57.147122", "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(BYAB_3_FIO1:I.Pt04.Data)OTE(BYAB_3_SS1_SPB);", "timestamp": "2025-09-04T20:53:57.147502", "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(BYAB_3_FIO1:I.Pt08.Data)OTE(BYAB_3_SS2_SPB);", "timestamp": "2025-09-04T20:53:57.147840", "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(BYCB_3_FIO1:I.Pt04.Data)OTE(BYCB_3_SS1_STPB);", "timestamp": "2025-09-04T20:53:57.148376", "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(BYCB_3_FIO1:I.Pt08.Data)OTE(BYCB_3_SS2_SPB);", "timestamp": "2025-09-04T20:53:57.148781", "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(Local:5:I.Data.0)OTE(MCM05);", "timestamp": "2025-09-04T20:53:57.149110", "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 5 total rungs", "timestamp": "2025-09-04T20:53:57.149444", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: safety_tag_map", "timestamp": "2025-09-04T20:53:57.149757", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: station_jr_pb", "timestamp": "2025-09-04T20:53:57.150089", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: station_jr_pb", "timestamp": "2025-09-04T20:53:57.150974", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Plugin station_s_pb cannot generate with current data", "timestamp": "2025-09-04T20:53:57.151384", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: station_ss_pb", "timestamp": "2025-09-04T20:53:57.151699", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: station_ss_pb", "timestamp": "2025-09-04T20:53:57.152205", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Plugin station_epc cannot generate with current data", "timestamp": "2025-09-04T20:53:57.152538", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: jpe", "timestamp": "2025-09-04T20:53:57.152849", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: jpe", "timestamp": "2025-09-04T20:53:57.153381", "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-04T20:53:57.153733", "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-04T20:53:57.154485", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Plugin pmm cannot generate with current data", "timestamp": "2025-09-04T20:53:57.154840", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Plugin cb_monitor cannot generate with current data", "timestamp": "2025-09-04T20:53:57.155163", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: belt_tracking", "timestamp": "2025-09-04T20:53:57.155881", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: belt_tracking", "timestamp": "2025-09-04T20:53:57.156985", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: main_routine", "timestamp": "2025-09-04T20:53:57.157334", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Generating MainRoutine with JSR calls", "timestamp": "2025-09-04T20:53:57.157658", "module": "src.routines.main_routine_plugin.MainRoutinePlugin", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated MainRoutine", "timestamp": "2025-09-04T20:53:57.158031", "module": "src.routines.main_routine_plugin.MainRoutinePlugin", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: main_routine", "timestamp": "2025-09-04T20:53:57.158369", "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': False, 'safety_tag_map': True, 'station_jr_pb': True, 'station_s_pb': False, 'station_ss_pb': True, 'station_epc': False, 'jpe': True, 'fpe': True, 'pmm': False, 'cb_monitor': False, 'belt_tracking': True, 'main_routine': True}", "timestamp": "2025-09-04T20:53:57.158710", "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 (16): MainRoutine, R010_MCM, R011_RACK, R020_DPM, R030_FIOM, R031_FIOH, R040_APF, R050_FLOW_CTRL, R051_SPEED_CTRL, R090_STATION_JR_PB, R092_STATION_SS_PB, R100_JPE, R101_FPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking", "timestamp": "2025-09-04T20:53:57.158950", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R010_MCM: 2 rungs | example: NOP();", "timestamp": "2025-09-04T20:53:57.159244", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R011_RACK: 2 rungs | example: NOP();", "timestamp": "2025-09-04T20:53:57.159441", "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: 7 rungs | example: NOP();", "timestamp": "2025-09-04T20:53:57.159665", "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: 31 rungs | example: NOP();", "timestamp": "2025-09-04T20:53:57.159865", "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: 3 rungs | example: NOP();", "timestamp": "2025-09-04T20:53:57.160136", "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: 5 rungs | example: NOP();", "timestamp": "2025-09-04T20:53:57.160378", "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: 4 rungs | example: XIC(BYAB_3_VFD1.CTRL.STS.Enabled)OTE(BYAB_2_VFD1.CTRL.CMD.Interlock);", "timestamp": "2025-09-04T20:53:57.160686", "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,BYAB_2_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,BYAB_3_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,BYCB_2_VFD1.CTRL.CMD.Speed_FPM) ,...", "timestamp": "2025-09-04T20:53:57.160994", "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: 4 rungs | example: [XIO(BYAB_3_VFD1:SI.In00Data) ,XIO(BYAB_3_VFD1:SI.In01Data) ]XIO(BYAB_2_VFD1:SO.STOOutput)XIO(BYAB_3_VFD1:SO.STOOutput)XIC(BYCB_2_VFD1:SO.STOOutput)XIC(BYCB_...", "timestamp": "2025-09-04T20:53:57.161255", "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: 6 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);", "timestamp": "2025-09-04T20:53:57.161637", "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: 27 rungs | example: AOI_STATION_JR_PB(BYAB_2_JR1_PB.AOI,BYAB_2_JR1_PB.HMI,BYAB_2_JR1_PB.CTRL,NO_PARTNER,BYAB_2_VFD1:I.IO_0,BYAB_2_VFD1:O.IO_1,MCM.CTRL)MOVE(BYAB_2_JR1_PB.CTRL.ST...", "timestamp": "2025-09-04T20:53:57.161880", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R092_STATION_SS_PB: 3 rungs | example: AOI_STATION_SS_PB(BYAB_3_SS1_STATION.AOI,BYAB_3_SS1_STATION.HMI,BYAB_3_SS1_STATION.CTRL,BYAB_3_VFD1.CTRL,BYAB_3_FIO1:I.ConnectionFaulted,BYAB_3_FIO1:I.Pt04.D...", "timestamp": "2025-09-04T20:53:57.162110", "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: 6 rungs | example: AOI_JPE(BYAB_2_TPE1.AOI,BYAB_2_TPE1.HMI,BYAB_2_TPE1.CTRL,BYAB_2_VFD1.CTRL,BYAB_2_JR1_PB.CTRL,BYAB_2_VFD1:I.ConnectionFaulted,BYAB_2_VFD1:I.In_2,YES,BYAB_3_VF...", "timestamp": "2025-09-04T20:53:57.162304", "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: 19 rungs | example: AOI_FPE(BYAB_4CH_PE1.AOI,BYAB_4CH_PE1.HMI,BYAB_4CH_PE1.CTRL,BYAB_4CH_VFD1.CTRL,BYAB_4CH_VFD1:I.ConnectionFaulted,BYAB_3_FIO1:I.Pt02.Data,BYAB_4CH_FIOH1:O.Pro...", "timestamp": "2025-09-04T20:53:57.162543", "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: 5 rungs | example: NOP();", "timestamp": "2025-09-04T20:53:57.162705", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- MainRoutine: 1 rungs | example: [JSR(R010_MCM,0) ,JSR(R011_RACK,0) ,JSR(R020_DPM,0) ,JSR(R030_FIOM,0) ,JSR(R031_FIOH,0) ,JSR(R040_APF,0) ,JSR(R050_FLOW_CTRL,0) ,JSR(R051_SPEED_CTRL,0) ,JSR(...", "timestamp": "2025-09-04T20:53:57.162864", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "Successfully completed ModernMainProgramGenerator generation", "timestamp": "2025-09-04T20:53:57.163066", "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_MCM04/MainProgram_Generated.L5X", "timestamp": "2025-09-04T20:53:57.169216", "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_MCM04/MainProgram_Generated.L5X", "timestamp": "2025-09-04T20:53:57.169605", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Generating safety tag mapping...", "timestamp": "2025-09-04T20:53:57.169811", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Creating MappingWriter wrapper", "timestamp": "2025-09-04T20:53:57.169983", "module": "src.container", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Creating DataLoader instance", "timestamp": "2025-09-04T20:53:57.170129", "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_MCM04/SafetyTagMapping.txt", "timestamp": "2025-09-04T20:53:57.222998", "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: 4", "timestamp": "2025-09-04T20:53:57.223194", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "=== All artifacts generated successfully! ===", "timestamp": "2025-09-04T20:53:57.223341", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
=== Step 2: Routines Generator stdout ===
Found JPE config for BYAB_2_TPE1
Found JPE config for BYAB_2_TPE2
Found JPE config for BYCB_2_TPE1
Found JPE config for BYCB_2_TPE2
Found JPE config for BYAB_3_TPE1 (station from config, beacon from config)
Found JPE config for BYCB_3_TPE1 (station from config, beacon from config)
[DEBUG] Found 0 SO beacon tags for safety mapping
Found STATION_SS_PB config for BYAB_3_SS1
Found STATION_SS_PB config for BYAB_3_SS2
Found STATION_SS_PB config for BYCB_3_SS2
Found STATION_JR_PB config for BYAB_2_JR1_PB
Found STATION_JR_PB config for BYCB_2_JR1_PB
Found STATION_JR_PB config for S011042_JR1_PB
Found STATION_JR_PB config for S011034_JR1_PB
Found STATION_JR_PB config for S011041_JR1_PB
Found STATION_JR_PB config for S011033_JR1_PB
Found STATION_JR_PB config for S011050_JR1_PB
Found STATION_JR_PB config for S011058_JR1_PB
Found STATION_JR_PB config for S011049_JR1_PB
Found STATION_JR_PB config for S011059_JR1_PB
Found STATION_JR_PB config for S011068_JR1_PB
Found STATION_JR_PB config for S011065_JR1_PB
Found STATION_JR_PB config for S011074_JR1_PB
Found STATION_JR_PB config for S011076_JR1_PB
Found STATION_JR_PB config for S011073_JR1_PB
Found STATION_JR_PB config for S011010_JR1_PB
Found STATION_JR_PB config for S011002_JR1_PB
Found STATION_JR_PB config for S011009_JR1_PB
Found STATION_JR_PB config for S011001_JR1_PB
Found STATION_JR_PB config for S011018_JR1_PB
Found STATION_JR_PB config for S011026_JR1_PB
Found STATION_JR_PB config for S011017_JR1_PB
Found STATION_JR_PB config for S011025_JR1_PB
Found STATION_JR_PB config for S013079_JR1_PB
Found STATION_JR_PB config for S013080_JR1_PB
Found STATION_JR_PB config for S013088_JR1_PB
Found STATION_JR_PB config for S013087_JR1_PB
Created SafetyTagMapping.txt with 31 mappings
File: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/SafetyTagMapping.txt
Found JPE config for BYAB_2_TPE1
Found JPE config for BYAB_2_TPE2
Found JPE config for BYCB_2_TPE1
Found JPE config for BYCB_2_TPE2
Found JPE config for BYAB_3_TPE1 (station from config, beacon from config)
Found JPE config for BYCB_3_TPE1 (station from config, beacon from config)
Found STATION_JR_PB config for BYAB_2_JR1_PB
Found STATION_JR_PB config for BYCB_2_JR1_PB
Found STATION_JR_PB config for S011042_JR1_PB
Found STATION_JR_PB config for S011034_JR1_PB
Found STATION_JR_PB config for S011041_JR1_PB
Found STATION_JR_PB config for S011033_JR1_PB
Found STATION_JR_PB config for S011050_JR1_PB
Found STATION_JR_PB config for S011058_JR1_PB
Found STATION_JR_PB config for S011049_JR1_PB
Found STATION_JR_PB config for S011059_JR1_PB
Found STATION_JR_PB config for S011068_JR1_PB
Found STATION_JR_PB config for S011065_JR1_PB
Found STATION_JR_PB config for S011074_JR1_PB
Found STATION_JR_PB config for S011076_JR1_PB
Found STATION_JR_PB config for S011073_JR1_PB
Found STATION_JR_PB config for S011010_JR1_PB
Found STATION_JR_PB config for S011002_JR1_PB
Found STATION_JR_PB config for S011009_JR1_PB
Found STATION_JR_PB config for S011001_JR1_PB
Found STATION_JR_PB config for S011018_JR1_PB
Found STATION_JR_PB config for S011026_JR1_PB
Found STATION_JR_PB config for S011017_JR1_PB
Found STATION_JR_PB config for S011025_JR1_PB
Found STATION_JR_PB config for S013079_JR1_PB
Found STATION_JR_PB config for S013080_JR1_PB
Found STATION_JR_PB config for S013088_JR1_PB
Found STATION_JR_PB config for S013087_JR1_PB
Found STATION_SS_PB config for BYAB_3_SS1
Found STATION_SS_PB config for BYAB_3_SS2
Found STATION_SS_PB config for BYCB_3_SS2
FIOM BYAB_3_FIO1 -> DPM DPM04_VS01A
FIOM BYCB_3_FIO1 -> DPM DPM04_VS01A
FIOM VS01A_FIOM1 -> DPM DPM01_VS01A
FIOM VS01A_FIOM2 -> DPM DPM01_VS01A
FIOM VS01A_FIOM3 -> DPM DPM01_VS01A
FIOM VS01A_FIOM4 -> DPM DPM01_VS01A
FIOM VS01A_FIOM5 -> DPM DPM01_VS01A
FIOM VS01A_FIOM6 -> DPM DPM02_VS01A
FIOM VS01A_FIOM7 -> DPM DPM02_VS01A
FIOM VS01A_FIOM8 -> DPM DPM02_VS01A
FIOM VS01A_FIOM9 -> DPM DPM02_VS01A
FIOM VS01A_FIOM10 -> DPM DPM03_VS01A
FIOM VS01A_FIOM11 -> DPM DPM03_VS01A
FIOM VS01A_FIOM12 -> DPM DPM03_VS01A
FIOM VS01A_FIOM13 -> DPM DPM03_VS01A
FIOM VS01A_FIOM14 -> DPM DPM03_VS01A
FIOM VS01A_FIOM15 -> DPM DPM04_VS01A
FIOM VS01A_FIOM16 -> DPM DPM04_VS01A
FIOM VS01A_FIOM17 -> DPM DPM04_VS01A
FIOM VS01A_FIOM18 -> DPM DPM04_VS01A
FIOM VS01A_FIOM19 -> DPM DPM05_VS01A
FIOM VS01A_FIOM20 -> DPM DPM05_VS01A
FIOM VS01A_FIOM21 -> DPM DPM05_VS01A
FIOM VS01A_FIOM22 -> DPM DPM05_VS01A
FIOM VS01A_FIOM23 -> DPM DPM05_VS01A
FIOM VS01C_FIOM16 -> DPM DPM02_VS01C
FIOM VS01C_FIOM17 -> DPM DPM02_VS01C
FIOM VS01C_FIOM18 -> DPM DPM02_VS01C
FIOM VS01C_FIOM19 -> DPM DPM02_VS01C
FIOM VS01C_FIOM20 -> DPM DPM02_VS01C
FIOH VS01C_FIOH17 -> FIO VS01C_FIOM17
FIOH VS01C_FIOH19 -> FIO VS01C_FIOM19
APF BYAB_2_VFD1 -> DPM DPM04_VS01A
APF BYAB_3_VFD1 -> DPM DPM04_VS01A
APF BYCB_2_VFD1 -> DPM DPM04_VS01A
APF BYCB_3_VFD1 -> DPM DPM04_VS01A
- Added 4 E-stop check rungs
[R090_STATION_JR_PB] Starting STATION_JR_PB routine generation...
Found 27 STATION_JR_PB configurations
Generated 27 STATION_JR_PB rungs
[R0100_JPE] Starting JPE routine generation...
Found 6 JPE configurations
Generated 6 JPE rungs
[R101_FPE] Starting FPE routine generation...
Found 19 FPE configurations
Generated 19 FPE rungs
Belt tracking for BYAB_2_VFD1 -> zzz_BYAB_2Tracking
Belt tracking for BYAB_3_VFD1 -> zzz_BYAB_3Tracking
Belt tracking for BYCB_2_VFD1 -> zzz_BYCB_2Tracking
Belt tracking for BYCB_3_VFD1 -> zzz_BYCB_3Tracking
- Added 4 belt tracking AOI calls
Created safety tag mapping file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/SafetyTagMapping.txt
=== Step 2: Routines Generator stderr ===
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Logging to file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/logs/workflow_SAT9_MCM04_20250904_205351.log
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] === Generating All PLC Artifacts ===
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Generating SafetyProgram L5X...
[20:53:56] [WARNING] [logging_config.py:128:_log_with_context] LimitedSafetyProgramGenerator is deprecated; using ModernSafetyProgramGenerator
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Starting ModernSafetyProgramGenerator generation
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Creating SafetyProgram XML structure
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: main_routine (core)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: apf (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: belt_tracking (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: cb_monitor (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: d2c_chute (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: dpm (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: encoder (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estops (safety)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estop_check (safety)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: extendo (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fioh (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fiom (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: flow_ctrl (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fpe (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: inputs (safety)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: jpe (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: mcm (core)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: outputs (safety)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pb_chute (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pmm (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: rack (core)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: resets (safety)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: safety_tag_map (core)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: safety_tag_mapping (safety)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: speed_ctrl (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_epc (safety)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_chute (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_pb (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_ss_pb (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_s_pb (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: taching_belts (device)
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: zones (safety)
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Generating safety routines...
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: inputs
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: inputs
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: outputs
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: outputs
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: resets
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: resets
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: zones
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for BYAB_3: {'EPC2', 'EPC1'}
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for BYCB_3: {'EPC2', 'EPC1'}
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Available DCS controllers: {'BYAB_3': {'EPC2', 'EPC1'}, 'BYCB_3': {'EPC2', 'EPC1'}}
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Zone 04-01 candidates: ['BYAB_2', 'BYAB_3']
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base BYAB_2 in zone 04-01
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Zone 04-02 candidates: ['BYCB_2', 'BYCB_3']
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base BYCB_2 in zone 04-02
[20:53:56] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: zones
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estops
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estops
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Safety routine generation results: {'inputs': True, 'outputs': True, 'resets': True, 'zones': True, 'estops': True}
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag map with 4 tags
[20:53:56] [INFO] [logging_config.py:126:_log_with_context] Routines created (6): MainRoutine, R010_INPUTS, R011_OUTPUTS, R012_RESETS, R020_ESTOPS, R030_ZONES
[20:53:56] [INFO] [logging_config.py:126:_log_with_context] - R010_INPUTS: 13 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS);
[20:53:56] [INFO] [logging_config.py:126:_log_with_context] - R011_OUTPUTS: 2 rungs | example: XIC(EStop_MCM_OK)XIC(EStop_04_01_OK)[OTE(BYAB_2_VFD1:SO.STOOutput),OTE(BYAB_3_VFD1:SO.STOOutput)];
[20:53:56] [INFO] [logging_config.py:126:_log_with_context] - R012_RESETS: 4 rungs | example: [XIC(SFT_BYAB_3_SS1_SPB) ,XIC(SFT_MCM_S_PB)]OTE(RST_BYAB_3_EPC1_ESTOP);
[20:53:56] [INFO] [logging_config.py:126:_log_with_context] - R030_ZONES: 3 rungs | example: XIC(BYAB_3_EPC1_DCS_CTRL.O1)XIC(BYAB_3_EPC2_DCS_CTRL.O1)OTE(EStop_04_01_OK);
[20:53:56] [INFO] [logging_config.py:126:_log_with_context] - R020_ESTOPS: 5 rungs | example: DCS(MCM_EPB_DCS_CTRL,EMERGENCY STOP,EQUIVALENT - ACTIVE HIGH,500,MANUAL,AUTOMATIC,Local:7:I.Pt02.Data,Local:7:I.Pt03.Data,MCM_EPB_STATUS,SFT_MCM_S_PB);
[20:53:56] [INFO] [logging_config.py:126:_log_with_context] - MainRoutine: 1 rungs | example: [JSR(R010_INPUTS,0) ,JSR(R011_OUTPUTS,0) ,JSR(R012_RESETS,0) ,JSR(R020_ESTOPS,0) ,JSR(R030_ZONES,0) ];
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernSafetyProgramGenerator generation
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Written ModernSafetyProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/SafetyProgram_Generated.L5X
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] SafetyProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/SafetyProgram_Generated.L5X
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Generating MainProgram L5X...
[20:53:56] [WARNING] [logging_config.py:128:_log_with_context] LimitedMainProgramGenerator is deprecated; using ModernMainProgramGenerator
[20:53:56] [INFO] [logging_config.py:128:_log_with_context] Starting ModernMainProgramGenerator generation
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Creating MainProgram XML structure
[20:53:56] [DEBUG] [logging_config.py:128:_log_with_context] Adding controller tags...
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Extracting FPE data
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: FPE count=19
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing BYAB_4CH_PE1 base=BYAB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for BYAB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE BYAB_4CH_PE1: conveyor=BYAB_4CH_VFD1.CTRL parent_fault=BYAB_4CH_VFD1:I.ConnectionFaulted input=BYAB_3_FIO1:I.Pt02.Data beacon=BYAB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing BYAB_4CH_PE2 base=BYAB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for BYAB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE BYAB_4CH_PE2: conveyor=BYAB_4CH_VFD1.CTRL parent_fault=BYAB_4CH_VFD1:I.ConnectionFaulted input=BYAB_3_FIO1:I.Pt03.Data beacon=BYAB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing BYCB_4CH_PE1 base=BYCB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for BYCB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE BYCB_4CH_PE1: conveyor=BYCB_4CH_VFD1.CTRL parent_fault=BYCB_4CH_VFD1:I.ConnectionFaulted input=BYCB_3_FIO1:I.Pt02.Data beacon=BYCB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing BYCB_4CH_PE2 base=BYCB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for BYCB_4CH
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE BYCB_4CH_PE2: conveyor=BYCB_4CH_VFD1.CTRL parent_fault=BYCB_4CH_VFD1:I.ConnectionFaulted input=BYCB_3_FIO1:I.Pt03.Data beacon=BYCB_4CH_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013079_PE1 base=S013079_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013079_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013079_PE1: conveyor=S013079_PE1_VFD1.CTRL parent_fault=S013079_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH17:I.ProcessDataIn.Connector_2_A_Pin_4 beacon=S013079_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013079_PE2 base=S013079_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013079_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013079_PE2: conveyor=S013079_PE2_VFD1.CTRL parent_fault=S013079_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH17:I.ProcessDataIn.Connector_6_A_Pin_4 beacon=S013079_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013079_PE3 base=S013079_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013079_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013079_PE3: conveyor=S013079_PE3_VFD1.CTRL parent_fault=S013079_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH17:I.ProcessDataIn.Connector_6_B_Pin_2 beacon=S013079_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013085_PE1 base=S013085_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013085_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013085_PE1: conveyor=S013085_PE1_VFD1.CTRL parent_fault=S013085_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_2_A_Pin_4 beacon=S013085_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013083_PE1 base=S013083_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013083_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013083_PE1: conveyor=S013083_PE1_VFD1.CTRL parent_fault=S013083_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_4_A_Pin_4 beacon=S013083_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013085_PE2 base=S013085_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013085_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013085_PE2: conveyor=S013085_PE2_VFD1.CTRL parent_fault=S013085_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_6_A_Pin_4 beacon=S013085_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013085_PE3 base=S013085_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013085_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013085_PE3: conveyor=S013085_PE3_VFD1.CTRL parent_fault=S013085_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_6_B_Pin_2 beacon=S013085_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013083_PE2 base=S013083_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013083_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013083_PE2: conveyor=S013083_PE2_VFD1.CTRL parent_fault=S013083_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_8_A_Pin_4 beacon=S013083_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013083_PE3 base=S013083_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013083_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013083_PE3: conveyor=S013083_PE3_VFD1.CTRL parent_fault=S013083_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_8_B_Pin_2 beacon=S013083_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013087_PE1 base=S013087_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013087_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013087_PE1: conveyor=S013087_PE1_VFD1.CTRL parent_fault=S013087_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_1_A_Pin_4 beacon=S013087_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013081_PE1 base=S013081_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013081_PE1
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013081_PE1: conveyor=S013081_PE1_VFD1.CTRL parent_fault=S013081_PE1_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_3_A_Pin_4 beacon=S013081_PE1_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013087_PE2 base=S013087_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013087_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013087_PE2: conveyor=S013087_PE2_VFD1.CTRL parent_fault=S013087_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_5_A_Pin_4 beacon=S013087_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013087_PE3 base=S013087_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013087_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013087_PE3: conveyor=S013087_PE3_VFD1.CTRL parent_fault=S013087_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_5_B_Pin_2 beacon=S013087_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013081_PE2 base=S013081_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013081_PE2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013081_PE2: conveyor=S013081_PE2_VFD1.CTRL parent_fault=S013081_PE2_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_7_A_Pin_4 beacon=S013081_PE2_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE processing S013081_PE3 base=S013081_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] No VFD found for S013081_PE3
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] FPE S013081_PE3: conveyor=S013081_PE3_VFD1.CTRL parent_fault=S013081_PE3_VFD1:I.ConnectionFaulted input=VS01C_FIOH19:I.ProcessDataIn.Connector_7_B_Pin_2 beacon=S013081_PE3_FIOH1:O.ProcessDataOut.Connector_1_B_Pin_2
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: FPE configs=19
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Extracting PMM data
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: PMM entries=0
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: PMM configs=0
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Extracting CB_MONITOR data
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: CB PDPs=0
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: CB configs=0
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] Tags created: total=146 | standard=8 safety=24 dcs=5 modules=101
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Added 146 controller tags
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Generating main program routines...
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: mcm
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: mcm
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: rack
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: rack
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: dpm
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: dpm
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fiom
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fiom
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fioh
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fioh
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: apf
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: apf
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: flow_ctrl
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: flow_ctrl
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Extracting SPEED_CTRL data
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL VFDs=4
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] SPEED_CTRL sample=BYAB_2_VFD1, BYAB_3_VFD1, BYCB_2_VFD1, BYCB_3_VFD1
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL count=4
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: speed_ctrl
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: speed_ctrl
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estop_check
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estop_check
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Plugin encoder cannot generate with current data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: safety_tag_map
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: RST data has 5 rows
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: MCM05 -> Local:5:I.Data.0
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: BYAB_3_SS1_SPB -> BYAB_3_FIO1:I.Pt04.Data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: BYAB_3_SS2_SPB -> BYAB_3_FIO1:I.Pt08.Data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: BYCB_3_SS1_STPB -> BYCB_3_FIO1:I.Pt04.Data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: BYCB_3_SS2_SPB -> BYCB_3_FIO1:I.Pt08.Data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generating 5 rungs
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 1: XIC(BYAB_3_FIO1:I.Pt04.Data)OTE(BYAB_3_SS1_SPB);
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 2: XIC(BYAB_3_FIO1:I.Pt08.Data)OTE(BYAB_3_SS2_SPB);
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 3: XIC(BYCB_3_FIO1:I.Pt04.Data)OTE(BYCB_3_SS1_STPB);
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 4: XIC(BYCB_3_FIO1:I.Pt08.Data)OTE(BYCB_3_SS2_SPB);
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 5: XIC(Local:5:I.Data.0)OTE(MCM05);
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generated 5 total rungs
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: safety_tag_map
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_jr_pb
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_jr_pb
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Plugin station_s_pb cannot generate with current data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_ss_pb
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_ss_pb
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Plugin station_epc cannot generate with current data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: jpe
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: jpe
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fpe
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fpe
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Plugin pmm cannot generate with current data
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Plugin cb_monitor cannot generate with current data
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: belt_tracking
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: belt_tracking
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: main_routine
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Generating MainRoutine with JSR calls
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated MainRoutine
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: main_routine
[20:53:57] [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': False, 'safety_tag_map': True, 'station_jr_pb': True, 'station_s_pb': False, 'station_ss_pb': True, 'station_epc': False, 'jpe': True, 'fpe': True, 'pmm': False, 'cb_monitor': False, 'belt_tracking': True, 'main_routine': True}
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] Routines created (16): MainRoutine, R010_MCM, R011_RACK, R020_DPM, R030_FIOM, R031_FIOH, R040_APF, R050_FLOW_CTRL, R051_SPEED_CTRL, R090_STATION_JR_PB, R092_STATION_SS_PB, R100_JPE, R101_FPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R010_MCM: 2 rungs | example: NOP();
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R011_RACK: 2 rungs | example: NOP();
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R020_DPM: 7 rungs | example: NOP();
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R030_FIOM: 31 rungs | example: NOP();
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R031_FIOH: 3 rungs | example: NOP();
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R040_APF: 5 rungs | example: NOP();
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R050_FLOW_CTRL: 4 rungs | example: XIC(BYAB_3_VFD1.CTRL.STS.Enabled)OTE(BYAB_2_VFD1.CTRL.CMD.Interlock);
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R051_SPEED_CTRL: 1 rungs | example: [MOVE(Speed_350_FPM,BYAB_2_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,BYAB_3_VFD1.CTRL.CMD.Speed_FPM) ,MOVE(Speed_350_FPM,BYCB_2_VFD1.CTRL.CMD.Speed_FPM) ,...
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R120_ESTOP_CHECK: 4 rungs | example: [XIO(BYAB_3_VFD1:SI.In00Data) ,XIO(BYAB_3_VFD1:SI.In01Data) ]XIO(BYAB_2_VFD1:SO.STOOutput)XIO(BYAB_3_VFD1:SO.STOOutput)XIC(BYCB_2_VFD1:SO.STOOutput)XIC(BYCB_...
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R130_SAFETY_TAG_MAP: 6 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R090_STATION_JR_PB: 27 rungs | example: AOI_STATION_JR_PB(BYAB_2_JR1_PB.AOI,BYAB_2_JR1_PB.HMI,BYAB_2_JR1_PB.CTRL,NO_PARTNER,BYAB_2_VFD1:I.IO_0,BYAB_2_VFD1:O.IO_1,MCM.CTRL)MOVE(BYAB_2_JR1_PB.CTRL.ST...
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R092_STATION_SS_PB: 3 rungs | example: AOI_STATION_SS_PB(BYAB_3_SS1_STATION.AOI,BYAB_3_SS1_STATION.HMI,BYAB_3_SS1_STATION.CTRL,BYAB_3_VFD1.CTRL,BYAB_3_FIO1:I.ConnectionFaulted,BYAB_3_FIO1:I.Pt04.D...
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R100_JPE: 6 rungs | example: AOI_JPE(BYAB_2_TPE1.AOI,BYAB_2_TPE1.HMI,BYAB_2_TPE1.CTRL,BYAB_2_VFD1.CTRL,BYAB_2_JR1_PB.CTRL,BYAB_2_VFD1:I.ConnectionFaulted,BYAB_2_VFD1:I.In_2,YES,BYAB_3_VF...
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - R101_FPE: 19 rungs | example: AOI_FPE(BYAB_4CH_PE1.AOI,BYAB_4CH_PE1.HMI,BYAB_4CH_PE1.CTRL,BYAB_4CH_VFD1.CTRL,BYAB_4CH_VFD1:I.ConnectionFaulted,BYAB_3_FIO1:I.Pt02.Data,BYAB_4CH_FIOH1:O.Pro...
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - ZZZ_BeltTracking: 5 rungs | example: NOP();
[20:53:57] [INFO] [logging_config.py:126:_log_with_context] - MainRoutine: 1 rungs | example: [JSR(R010_MCM,0) ,JSR(R011_RACK,0) ,JSR(R020_DPM,0) ,JSR(R030_FIOM,0) ,JSR(R031_FIOH,0) ,JSR(R040_APF,0) ,JSR(R050_FLOW_CTRL,0) ,JSR(R051_SPEED_CTRL,0) ,JSR(...
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernMainProgramGenerator generation
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Written ModernMainProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/MainProgram_Generated.L5X
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] MainProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/MainProgram_Generated.L5X
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] Generating safety tag mapping...
[20:53:57] [DEBUG] [logging_config.py:128:_log_with_context] Creating MappingWriter wrapper
[20:53:57] [DEBUG] [logging_config.py:126:_log_with_context] Creating DataLoader instance
[20:53:57] [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_MCM04/SafetyTagMapping.txt
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] - Safety tags: 4
[20:53:57] [INFO] [logging_config.py:128:_log_with_context] === All artifacts generated successfully! ===
{"level": "INFO", "message": "Routine generation completed successfully", "timestamp": "2025-09-04T20:53:57.276902", "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_MCM04
- Excel: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/PLC Data Generator/DESC_IP_MERGED.xlsx
- Boilerplate: SAT9_boilerplate
- Mode: Single file
--------------------------------------------------
Created 2 FIOH modules based on TERM analysis
Found 30 IOLM modules
Found 81 Beacon modules
Found 4 APF modules
Found 6 DPM modules
Created 30 IOLM modules with boilerplate selection:
Device 'BYAB_3_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
BYAB_3_FIO1 (FIO D2CMaster): Using module-specific boilerplate BYAB_3_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/BYAB_3_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/BYAB_3_FIO1_Module.L5X
Device 'BYCB_3_FIO1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
BYCB_3_FIO1 (FIO D2CMaster): Using module-specific boilerplate BYCB_3_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/BYCB_3_FIO1_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/BYCB_3_FIO1_Module.L5X
Device 'VS01A_FIOM1' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM1 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM10' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM10 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM11' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM11 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM12' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM12 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM13' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM13 (FIO FIOM2_Master): Using variant boilerplate FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Device 'VS01A_FIOM14' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM14 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM15' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM15 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM16' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM16 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM17' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM17 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM18' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM18 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM19' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM19 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM2' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM2 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM20' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM20 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM21' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM21 (FIO FIOM2_Master): Using variant boilerplate FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Device 'VS01A_FIOM22' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM22 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM23' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM23 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM3' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM3 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM4' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM4 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM5' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM5 (FIO FIOM2_Master): Using variant boilerplate FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Device 'VS01A_FIOM6' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM6 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM7' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM7 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM8' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM8 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01A_FIOM9' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01A_FIOM9 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01C_FIOM16' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM16 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Device 'VS01C_FIOM17' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM17 (FIO PalletBuildMaster): Using variant boilerplate PalletBuildMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/PalletBuildMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/PalletBuildMaster_Module.L5X
Device 'VS01C_FIOM18' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM18 (FIO FIOM2_Master): Using variant boilerplate FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/FIOM2_Master_Module.L5X
Device 'VS01C_FIOM19' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM19 (FIO PalletBuildMaster): Using variant boilerplate PalletBuildMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/PalletBuildMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/PalletBuildMaster_Module.L5X
Device 'VS01C_FIOM20' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM20 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/ZMX_Module.L5X
Device 'BYAB_2_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
Device 'BYAB_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
Device 'BYCB_2_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
Device 'BYCB_3_VFD1' matched no patterns, using fallback parent: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
Successfully loaded boilerplate: SAT9_boilerplate/APF_Module_3_HP.L5X
VS01C_FIOH17 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/Sorter_FIOH_Module.L5X
VS01C_FIOH19 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/Sorter_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
WARNING: MCM base L5X not found at SAT9_boilerplate/MCM04.L5X
Using fallback: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/IO Tree Configuration Generator/BaseProgram.L5X
Archived old L5X: SAT9_MCM04_20250904_203326.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_MCM04/SAT9_MCM04_20250904_205400.L5X
Single file generation complete
- ['/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/SAT9_MCM04_20250904_205400.L5X']
=== Step 3 Batch Script Creation ===
Creating project folder compilation for: SAT9_MCM04
Source L5X: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04/SAT9_MCM04_20250904_205400.L5X
Project directory: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM04
Generated batch file: compile_SAT9_MCM04.bat
SUCCESS: Project compilation ready!
To compile on Windows:
cd "C:\\Users\\ilia.gurielidze\\Projects\\PLC Generation\\generated_projects\\SAT9_MCM04"
compile_SAT9_MCM04.bat