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

721 lines
90 KiB
Plaintext

{"level": "INFO", "message": "PLC Generation Workflow started", "timestamp": "2025-09-01T15:48:01.057630", "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_MCM05.xlsx", "project_name": "SAT9_MCM05"}
{"level": "INFO", "message": "Starting data processing step", "timestamp": "2025-09-01T15:48:01.058054", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
=== Step 1: PLC Data Generator stdout ===
Loading IO path mappings...
Loaded IO path mappings:
APF: 11 rows
M12DR: 16 rows
Hub: 16 rows
SorterHub: 16 rows
SIO: 16 rows
IB16: 16 rows
OB16E: 16 rows
IB16S: 16 rows
Available sheets: ['NETWORK_PLC', 'DESC_PLC']
Found DESC sheet: DESC_PLC
Found NETWORK sheet: NETWORK_PLC
DESC columns: ['TAGNAME', 'TERM', 'DESCA', 'DESCB']
NETWORK columns: ['DPM', 'DPM_IP', 'Name', 'PartNumber', 'IP']
NOTE: Ignored 1 rows from DESC sheet with an empty TAGNAME.
Classifying signals and adding IO paths...
Signal classification results:
SPARE: 450
I: 405
IOLink: 154
O: 36
Device type distribution:
M12DR: 528
Hub: 469
IB16: 16
OB16E: 16
IB16S: 16
IO Path mapping results:
Successful mappings: 1045/1045 (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_VS01B', 'DPM01_VS01C']
================================================================================
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...
Removed 17 duplicate rows (exact matches) before saving DESC_IP sheet.
Final result has 1030 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_MCM05_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_MCM05.xlsx
DEBUG: Full project pattern matched: SAT9_MCM05
DEBUG: Final subsystem name: SAT9_MCM05
Reading input file: SAT9_MCM05_DESC_IP_MERGED.xlsx
Removed 149 IOLink rows (including beacons, FIOH channels, and all other IOLink entries)
Added 265 rows for beacon lights
Removed 2 blank name/description rows
Saving output file: SAT9_MCM05_OUTPUT.csv
Processing complete!
Created standard output file: DESC_IP_MERGED.xlsx
=== Step 1: PLC Data Generator stderr ===
=== Step 1 File Copy ===
Copied SAT9_MCM05_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-01T15:48:04.914006", "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-01T15:48:04.914250", "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_MCM05_20250901_154801.log", "timestamp": "2025-09-01T15:48:07.042033", "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-01T15:48:07.043915", "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-01T15:48:07.044083", "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-01T15:48:07.054189", "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-01T15:48:07.054419", "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-01T15:48:07.054553", "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-01T15:48:07.064161", "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-01T15:48:07.069035", "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-01T15:48:07.072462", "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-01T15:48:07.075578", "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-01T15:48:07.079314", "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-01T15:48:07.082734", "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-01T15:48:07.086956", "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-01T15:48:07.095202", "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-01T15:48:07.099633", "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-01T15:48:07.103743", "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-01T15:48:07.108269", "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-01T15:48:07.112458", "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-01T15:48:07.116709", "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-01T15:48:07.120359", "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-01T15:48:07.123984", "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-01T15:48:07.127390", "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-01T15:48:07.131423", "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-01T15:48:07.135274", "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-01T15:48:07.139220", "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-01T15:48:07.143286", "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-01T15:48:07.147056", "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-01T15:48:07.151244", "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-01T15:48:07.155121", "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-01T15:48:07.158950", "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-01T15:48:07.162659", "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-01T15:48:07.167613", "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-01T15:48:07.172384", "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-01T15:48:07.177748", "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-01T15:48:07.182704", "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-01T15:48:07.187521", "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-01T15:48:07.191679", "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-01T15:48:07.191906", "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": "Plugin inputs cannot generate with current data", "timestamp": "2025-09-01T15:48:08.272405", "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 outputs cannot generate with current data", "timestamp": "2025-09-01T15:48:08.276474", "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 resets cannot generate with current data", "timestamp": "2025-09-01T15:48:08.276801", "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-01T15:48:08.279038", "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-01T15:48:08.293266", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "best_key": "MCM01", "score": 0}
{"level": "DEBUG", "message": "Zones: using DEFAULT group", "timestamp": "2025-09-01T15:48:08.293633", "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", "default_count": 1}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-01T15:48:08.294308", "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": 1}
{"level": "DEBUG", "message": "Generating routine: zones", "timestamp": "2025-09-01T15:48:08.294547", "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": "Available DCS controllers: {}", "timestamp": "2025-09-01T15:48:08.295141", "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": "INFO", "message": "Successfully generated routine: zones", "timestamp": "2025-09-01T15:48:08.295475", "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 estops cannot generate with current data", "timestamp": "2025-09-01T15:48:08.295697", "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': False, 'outputs': False, 'resets': False, 'zones': True, 'estops': False}", "timestamp": "2025-09-01T15:48:08.295909", "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 1 tags", "timestamp": "2025-09-01T15:48:08.303326", "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 (2): MainRoutine, R030_ZONES", "timestamp": "2025-09-01T15:48:08.303592", "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: 1 rungs | example: XIC(MCM_EPB_DCS_CTRL.O1)OTE(EStop_MCM_OK);", "timestamp": "2025-09-01T15:48:08.303786", "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-01T15:48:08.304006", "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-01T15:48:08.304218", "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_MCM05/SafetyProgram_Generated.L5X", "timestamp": "2025-09-01T15:48:08.306727", "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_MCM05/SafetyProgram_Generated.L5X", "timestamp": "2025-09-01T15:48:08.306984", "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-01T15:48:08.307207", "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-01T15:48:08.307404", "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-01T15:48:08.307610", "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-01T15:48:08.307783", "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-01T15:48:08.308015", "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-01T15:48:08.407553", "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-01T15:48:08.419877", "module": "src.data_loader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "best_key": "MCM01", "score": 0}
{"level": "DEBUG", "message": "Zones: using DEFAULT group", "timestamp": "2025-09-01T15:48:08.420243", "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", "default_count": 1}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-09-01T15:48:08.420757", "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": 1}
{"level": "DEBUG", "message": "Extracting PMM data", "timestamp": "2025-09-01T15:48:08.478146", "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-01T15:48:08.479267", "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-01T15:48:08.479522", "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-01T15:48:08.479672", "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-01T15:48:08.480483", "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-01T15:48:08.480630", "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=109 | standard=1 safety=3 dcs=1 modules=96", "timestamp": "2025-09-01T15:48:08.481029", "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 109 controller tags", "timestamp": "2025-09-01T15:48:08.481190", "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-01T15:48:08.481393", "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-01T15:48:08.481574", "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-01T15:48:08.481704", "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-01T15:48:08.481823", "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-01T15:48:08.481958", "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-01T15:48:08.482121", "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-01T15:48:08.483196", "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-01T15:48:08.483422", "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-01T15:48:08.485381", "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-01T15:48:08.485608", "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-01T15:48:08.487659", "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 apf cannot generate with current data", "timestamp": "2025-09-01T15:48:08.488258", "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 flow_ctrl cannot generate with current data", "timestamp": "2025-09-01T15:48:08.488652", "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-01T15:48:08.488845", "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=0", "timestamp": "2025-09-01T15:48:08.489251", "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=", "timestamp": "2025-09-01T15:48:08.489482", "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=0", "timestamp": "2025-09-01T15:48:08.489669", "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": "Plugin speed_ctrl cannot generate with current data", "timestamp": "2025-09-01T15:48:08.489832", "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 estop_check cannot generate with current data", "timestamp": "2025-09-01T15:48:08.490027", "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-01T15:48:08.490208", "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 1 rows", "timestamp": "2025-09-01T15:48:08.490408", "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-01T15:48:08.490644", "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 1 rungs", "timestamp": "2025-09-01T15:48:08.490776", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generated rung 1: XIC(Local:5:I.Data.0)OTE(MCM05);", "timestamp": "2025-09-01T15:48:08.490926", "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 1 total rungs", "timestamp": "2025-09-01T15:48:08.491068", "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-01T15:48:08.491227", "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-01T15:48:08.491371", "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-01T15:48:08.491823", "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-01T15:48:08.491975", "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 jpe cannot generate with current data", "timestamp": "2025-09-01T15:48:08.492097", "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-01T15:48:08.492236", "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-01T15:48:08.492353", "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 belt_tracking cannot generate with current data", "timestamp": "2025-09-01T15:48:08.492759", "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-01T15:48:08.492933", "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-01T15:48:08.493088", "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-01T15:48:08.493253", "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-01T15:48:08.493415", "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': False, 'flow_ctrl': False, 'speed_ctrl': False, 'estop_check': False, 'safety_tag_map': True, 'station_jr_pb': True, 'station_epc': False, 'jpe': False, 'pmm': False, 'cb_monitor': False, 'belt_tracking': False, 'main_routine': True}", "timestamp": "2025-09-01T15:48:08.493582", "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 (8): MainRoutine, R010_MCM, R011_RACK, R020_DPM, R030_FIOM, R031_FIOH, R090_STATION_JR_PB, R130_SAFETY_TAG_MAP", "timestamp": "2025-09-01T15:48:08.493731", "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-01T15:48:08.493872", "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-01T15:48:08.494018", "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: 3 rungs | example: NOP();", "timestamp": "2025-09-01T15:48:08.494149", "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: 33 rungs | example: NOP();", "timestamp": "2025-09-01T15:48:08.494275", "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: 33 rungs | example: NOP();", "timestamp": "2025-09-01T15:48:08.494413", "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: 2 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);", "timestamp": "2025-09-01T15:48:08.494573", "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: 30 rungs | example: AOI_STATION_JR_PB(S012001_JR1_PB.AOI,S012001_JR1_PB.HMI,S012001_JR1_PB.CTRL,NO_PARTNER,VS01B_FIOM1:I.Pt04.Data,VS01B_FIOM1:O.Pt05.Data)MOVE(S012001_JR1_PB.CT...", "timestamp": "2025-09-01T15:48:08.494738", "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(R130_SAFETY_TAG_MAP,0) ,JSR(R090_STATION_JR_PB,0) ];", "timestamp": "2025-09-01T15:48:08.494896", "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-01T15:48:08.495048", "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_MCM05/MainProgram_Generated.L5X", "timestamp": "2025-09-01T15:48:08.498576", "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_MCM05/MainProgram_Generated.L5X", "timestamp": "2025-09-01T15:48:08.498842", "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-01T15:48:08.499066", "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-01T15:48:08.499285", "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-01T15:48:08.499504", "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_MCM05/SafetyTagMapping.txt", "timestamp": "2025-09-01T15:48:08.587158", "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: 1", "timestamp": "2025-09-01T15:48:08.587386", "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-01T15:48:08.587569", "module": "__main__", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
=== Step 2: Routines Generator stdout ===
Found STATION_JR_PB config for S012001_JR1_PB
Found STATION_JR_PB config for S012039_JR1_PB
Found STATION_JR_PB config for S012047_JR1_PB
Found STATION_JR_PB config for S012048_JR1_PB
Found STATION_JR_PB config for S012055_JR1_PB
Found STATION_JR_PB config for S012056_JR1_PB
Found STATION_JR_PB config for S012063_JR1_PB
Found STATION_JR_PB config for S012064_JR1_PB
Found STATION_JR_PB config for S012002_JR1_PB
Found STATION_JR_PB config for S012014_JR1_PB
Found STATION_JR_PB config for S012022_JR1_PB
Found STATION_JR_PB config for S012023_JR1_PB
Found STATION_JR_PB config for S012024_JR1_PB
Found STATION_JR_PB config for S012031_JR1_PB
Found STATION_JR_PB config for S012032_JR1_PB
Found STATION_JR_PB config for S013001_JR1_PB
Found STATION_JR_PB config for S013034_JR1_PB
Found STATION_JR_PB config for S013041_JR1_PB
Found STATION_JR_PB config for S013042_JR1_PB
Found STATION_JR_PB config for S013049_JR1_PB
Found STATION_JR_PB config for S013050_JR1_PB
Found STATION_JR_PB config for S013057_JR1_PB
Found STATION_JR_PB config for S013058_JR1_PB
Found STATION_JR_PB config for S013009_JR1_PB
Found STATION_JR_PB config for S013010_JR1_PB
Found STATION_JR_PB config for S013017_JR1_PB
Found STATION_JR_PB config for S013018_JR1_PB
Found STATION_JR_PB config for S013025_JR1_PB
Found STATION_JR_PB config for S013026_JR1_PB
Found STATION_JR_PB config for S013033_JR1_PB
FIOM VS01B_FIOM1 -> DPM DPM01_VS01B
FIOM VS01B_FIOM2 -> DPM DPM01_VS01B
FIOM VS01B_FIOM3 -> DPM DPM01_VS01B
FIOM VS01B_FIOM4 -> DPM DPM01_VS01B
FIOM VS01B_FIOM5 -> DPM DPM01_VS01B
FIOM VS01B_FIOM6 -> DPM DPM01_VS01B
FIOM VS01B_FIOM7 -> DPM DPM01_VS01B
FIOM VS01B_FIOM8 -> DPM DPM01_VS01B
FIOM VS01B_FIOM10 -> DPM DPM01_VS01B
FIOM VS01B_FIOM11 -> DPM DPM01_VS01B
FIOM VS01B_FIOM12 -> DPM DPM01_VS01B
FIOM VS01B_FIOM13 -> DPM DPM01_VS01B
FIOM VS01B_FIOM14 -> DPM DPM01_VS01B
FIOM VS01B_FIOM15 -> DPM DPM01_VS01B
FIOM VS01B_FIOM16 -> DPM DPM01_VS01B
FIOM VS01B_FIOM17 -> DPM DPM01_VS01B
FIOM VS01C_FIOM1 -> DPM DPM01_VS01C
FIOM VS01C_FIOM2 -> DPM DPM01_VS01C
FIOM VS01C_FIOM3 -> DPM DPM01_VS01C
FIOM VS01C_FIOM4 -> DPM DPM01_VS01C
FIOM VS01C_FIOM5 -> DPM DPM01_VS01C
FIOM VS01C_FIOM6 -> DPM DPM01_VS01C
FIOM VS01C_FIOM7 -> DPM DPM01_VS01C
FIOM VS01C_FIOM8 -> DPM DPM01_VS01C
FIOM VS01C_FIOM9 -> DPM DPM01_VS01C
FIOM VS01C_FIOM10 -> DPM DPM01_VS01C
FIOM VS01C_FIOM11 -> DPM DPM01_VS01C
FIOM VS01C_FIOM12 -> DPM DPM01_VS01C
FIOM VS01C_FIOM13 -> DPM DPM01_VS01C
FIOM VS01C_FIOM14 -> DPM DPM01_VS01C
FIOM VS01C_FIOM15 -> DPM DPM01_VS01C
FIOM VS01C_FIOM16 -> DPM DPM01_VS01C
FIOH VS01B_FIOH1 -> FIO VS01B_FIOM1
FIOH VS01B_FIOH2 -> FIO VS01B_FIOM2
FIOH VS01B_FIOH3 -> FIO VS01B_FIOM3
FIOH VS01B_FIOH4 -> FIO VS01B_FIOM4
FIOH VS01B_FIOH5 -> FIO VS01B_FIOM5
FIOH VS01B_FIOH6 -> FIO VS01B_FIOM6
FIOH VS01B_FIOH7 -> FIO VS01B_FIOM7
FIOH VS01B_FIOH8 -> FIO VS01B_FIOM8
FIOH VS01B_FIOH10 -> FIO VS01B_FIOM10
FIOH VS01B_FIOH11 -> FIO VS01B_FIOM11
FIOH VS01B_FIOH12 -> FIO VS01B_FIOM12
FIOH VS01B_FIOH13 -> FIO VS01B_FIOM13
FIOH VS01B_FIOH14 -> FIO VS01B_FIOM14
FIOH VS01B_FIOH15 -> FIO VS01B_FIOM15
FIOH VS01B_FIOH16 -> FIO VS01B_FIOM16
FIOH VS01B_FIOH17 -> FIO VS01B_FIOM17
FIOH VS01C_FIOH1 -> FIO VS01C_FIOM1
FIOH VS01C_FIOH2 -> FIO VS01C_FIOM2
FIOH VS01C_FIOH3 -> FIO VS01C_FIOM3
FIOH VS01C_FIOH4 -> FIO VS01C_FIOM4
FIOH VS01C_FIOH5 -> FIO VS01C_FIOM5
FIOH VS01C_FIOH6 -> FIO VS01C_FIOM6
FIOH VS01C_FIOH7 -> FIO VS01C_FIOM7
FIOH VS01C_FIOH8 -> FIO VS01C_FIOM8
FIOH VS01C_FIOH9 -> FIO VS01C_FIOM9
FIOH VS01C_FIOH10 -> FIO VS01C_FIOM10
FIOH VS01C_FIOH11 -> FIO VS01C_FIOM11
FIOH VS01C_FIOH12 -> FIO VS01C_FIOM12
FIOH VS01C_FIOH13 -> FIO VS01C_FIOM13
FIOH VS01C_FIOH14 -> FIO VS01C_FIOM14
FIOH VS01C_FIOH15 -> FIO VS01C_FIOM15
FIOH VS01C_FIOH16 -> FIO VS01C_FIOM16
[R090_STATION_JR_PB] Starting STATION_JR_PB routine generation...
Found 30 STATION_JR_PB configurations
Generated 30 STATION_JR_PB rungs
Created safety tag mapping file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05/SafetyTagMapping.txt
=== Step 2: Routines Generator stderr ===
[15:48:07] [INFO] [logging_config.py:128:_log_with_context] Logging to file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/logs/workflow_SAT9_MCM05_20250901_154801.log
[15:48:07] [INFO] [logging_config.py:128:_log_with_context] === Generating All PLC Artifacts ===
[15:48:07] [INFO] [logging_config.py:128:_log_with_context] Generating SafetyProgram L5X...
[15:48:07] [WARNING] [logging_config.py:128:_log_with_context] LimitedSafetyProgramGenerator is deprecated; using ModernSafetyProgramGenerator
[15:48:07] [INFO] [logging_config.py:128:_log_with_context] Starting ModernSafetyProgramGenerator generation
[15:48:07] [DEBUG] [logging_config.py:128:_log_with_context] Creating SafetyProgram XML structure
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: main_routine (core)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: apf (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: belt_tracking (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: cb_monitor (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: d2c_chute (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: dpm (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: encoder (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estops (safety)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estop_check (safety)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: extendo (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fioh (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fiom (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: flow_ctrl (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fpe (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: inputs (safety)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: jpe (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: mcm (core)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: outputs (safety)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pb_chute (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pmm (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: rack (core)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: resets (safety)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: safety_tag_map (core)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: speed_ctrl (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_epc (safety)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_chute (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_pb (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_ss_pb (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_s_pb (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: taching_belts (device)
[15:48:07] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: zones (safety)
[15:48:07] [INFO] [logging_config.py:128:_log_with_context] Generating safety routines...
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin inputs cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin outputs cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin resets cannot generate with current data
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: using DEFAULT group
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: zones
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Available DCS controllers: {}
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: zones
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin estops cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Safety routine generation results: {'inputs': False, 'outputs': False, 'resets': False, 'zones': True, 'estops': False}
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag map with 1 tags
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] Routines created (2): MainRoutine, R030_ZONES
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R030_ZONES: 1 rungs | example: XIC(MCM_EPB_DCS_CTRL.O1)OTE(EStop_MCM_OK);
[15:48:08] [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) ];
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernSafetyProgramGenerator generation
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Written ModernSafetyProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05/SafetyProgram_Generated.L5X
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] SafetyProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05/SafetyProgram_Generated.L5X
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Generating MainProgram L5X...
[15:48:08] [WARNING] [logging_config.py:128:_log_with_context] LimitedMainProgramGenerator is deprecated; using ModernMainProgramGenerator
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Starting ModernMainProgramGenerator generation
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Creating MainProgram XML structure
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Adding controller tags...
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: using DEFAULT group
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Extracting PMM data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Data: PMM entries=0
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Data: PMM configs=0
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Extracting CB_MONITOR data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Data: CB PDPs=0
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Data: CB configs=0
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] Tags created: total=109 | standard=1 safety=3 dcs=1 modules=96
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Added 109 controller tags
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Generating main program routines...
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: mcm
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: mcm
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: rack
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: rack
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: dpm
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: dpm
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fiom
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fiom
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fioh
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fioh
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin apf cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin flow_ctrl cannot generate with current data
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Extracting SPEED_CTRL data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL VFDs=0
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] SPEED_CTRL sample=
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Data: SPEED_CTRL count=0
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin speed_ctrl cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin estop_check cannot generate with current data
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: safety_tag_map
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: RST data has 1 rows
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: MCM05 -> Local:5:I.Data.0
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generating 1 rungs
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 1: XIC(Local:5:I.Data.0)OTE(MCM05);
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generated 1 total rungs
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: safety_tag_map
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_jr_pb
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_jr_pb
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin station_epc cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin jpe cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin pmm cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin cb_monitor cannot generate with current data
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Plugin belt_tracking cannot generate with current data
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: main_routine
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Generating MainRoutine with JSR calls
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated MainRoutine
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: main_routine
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Main routine generation results: {'mcm': True, 'rack': True, 'dpm': True, 'fiom': True, 'fioh': True, 'apf': False, 'flow_ctrl': False, 'speed_ctrl': False, 'estop_check': False, 'safety_tag_map': True, 'station_jr_pb': True, 'station_epc': False, 'jpe': False, 'pmm': False, 'cb_monitor': False, 'belt_tracking': False, 'main_routine': True}
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] Routines created (8): MainRoutine, R010_MCM, R011_RACK, R020_DPM, R030_FIOM, R031_FIOH, R090_STATION_JR_PB, R130_SAFETY_TAG_MAP
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R010_MCM: 2 rungs | example: NOP();
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R011_RACK: 2 rungs | example: NOP();
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R020_DPM: 3 rungs | example: NOP();
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R030_FIOM: 33 rungs | example: NOP();
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R031_FIOH: 33 rungs | example: NOP();
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R130_SAFETY_TAG_MAP: 2 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);
[15:48:08] [INFO] [logging_config.py:126:_log_with_context] - R090_STATION_JR_PB: 30 rungs | example: AOI_STATION_JR_PB(S012001_JR1_PB.AOI,S012001_JR1_PB.HMI,S012001_JR1_PB.CTRL,NO_PARTNER,VS01B_FIOM1:I.Pt04.Data,VS01B_FIOM1:O.Pt05.Data)MOVE(S012001_JR1_PB.CT...
[15:48:08] [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(R130_SAFETY_TAG_MAP,0) ,JSR(R090_STATION_JR_PB,0) ];
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernMainProgramGenerator generation
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Written ModernMainProgramGenerator to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05/MainProgram_Generated.L5X
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] MainProgram written to /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05/MainProgram_Generated.L5X
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] Generating safety tag mapping...
[15:48:08] [DEBUG] [logging_config.py:128:_log_with_context] Creating MappingWriter wrapper
[15:48:08] [DEBUG] [logging_config.py:126:_log_with_context] Creating DataLoader instance
[15:48:08] [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_MCM05/SafetyTagMapping.txt
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] - Safety tags: 1
[15:48:08] [INFO] [logging_config.py:128:_log_with_context] === All artifacts generated successfully! ===
{"level": "INFO", "message": "Routine generation completed successfully", "timestamp": "2025-09-01T15:48:08.654496", "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_MCM05
- Excel: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/PLC Data Generator/DESC_IP_MERGED.xlsx
- Boilerplate: SAT9_boilerplate
- Mode: Single file
--------------------------------------------------
WARNING: Found 2 TAGNAMEs with more than 16 entries:
VS01B_FIOH14: 26 entries (PARTNUMBER: TBIL-M1-16DXP)
VS01C_FIOM15: 17 entries (PARTNUMBER: 5032-8IOLM12DR)
Note: Most modules should have ≤16 IO channels. Review these for potential data issues.
Created 32 FIOH modules based on TERM analysis
Found 32 IOLM modules
Found 117 Beacon modules
Found 2 DPM modules
Created 32 IOLM modules with boilerplate selection:
Device 'VS01B_FIOM1' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM1 (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 'VS01B_FIOM10' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM10 (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 'VS01B_FIOM11' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM11 (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 'VS01B_FIOM12' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM12 (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 'VS01B_FIOM13' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM13 (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 'VS01B_FIOM14' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM14 (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 'VS01B_FIOM15' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM15 (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 'VS01B_FIOM16' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM16 (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 'VS01B_FIOM17' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_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 'VS01B_FIOM2' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM2 (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 'VS01B_FIOM3' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM3 (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 'VS01B_FIOM4' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM4 (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 'VS01B_FIOM5' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM5 (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 'VS01B_FIOM6' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM6 (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 'VS01B_FIOM7' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM7 (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 'VS01B_FIOM8' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01B_FIOM8 (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_FIOM1' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM1 (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_FIOM10' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM10 (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_FIOM11' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM11 (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_FIOM12' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM12 (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_FIOM13' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM13 (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_FIOM14' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM14 (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_FIOM15' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM15 (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_FIOM16' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM16 (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_FIOM2' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM2 (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_FIOM3' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM3 (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_FIOM4' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM4 (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_FIOM5' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM5 (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_FIOM6' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM6 (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_FIOM7' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM7 (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_FIOM8' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM8 (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_FIOM9' matched pattern 'VS', assigned to: SLOT2_EN4TR (Slot 2, IP 11.200.1.1)
VS01C_FIOM9 (FIO PalletBuildMaster): Using variant boilerplate PalletBuildMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/PalletBuildMaster_Module.L5X
Successfully loaded boilerplate: SAT9_boilerplate/PalletBuildMaster_Module.L5X
VS01B_FIOH1 (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
VS01B_FIOH10 (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
VS01B_FIOH11 (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
VS01B_FIOH12 (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
VS01B_FIOH13 (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
VS01B_FIOH14 (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
VS01B_FIOH15 (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
VS01B_FIOH16 (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
VS01B_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
VS01B_FIOH2 (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
VS01B_FIOH3 (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
VS01B_FIOH4 (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
VS01B_FIOH5 (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
VS01B_FIOH6 (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
VS01B_FIOH7 (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
VS01B_FIOH8 (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_FIOH1 (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_FIOH10 (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_FIOH11 (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_FIOH12 (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_FIOH13 (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_FIOH14 (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_FIOH15 (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_FIOH16 (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_FIOH2 (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_FIOH3 (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_FIOH4 (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_FIOH5 (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_FIOH6 (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_FIOH7 (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_FIOH8 (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_FIOH9 (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
Importing AOIs/DataTypes from base: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/IO Tree Configuration Generator/BaseProgram.L5X
Archived old L5X: SAT9_MCM05_20250831_180013.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_MCM05/SAT9_MCM05_20250901_154813.L5X
Single file generation complete
- ['/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05/SAT9_MCM05_20250901_154813.L5X']
=== Step 3 Batch Script Creation ===
Creating project folder compilation for: SAT9_MCM05
Source L5X: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05/SAT9_MCM05_20250901_154813.L5X
Project directory: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/generated_projects/SAT9_MCM05
Generated batch file: compile_SAT9_MCM05.bat
SUCCESS: Project compilation ready!
To compile on Windows:
cd "C:\\Users\\ilia.gurielidze\\Projects\\PLC Generation\\generated_projects\\SAT9_MCM05"
compile_SAT9_MCM05.bat