PLC_Generation/logs/workflow_MTN6_MCM06_20250825_170038.log
2025-08-26 21:29:02 +04:00

1075 lines
142 KiB
Plaintext

{"level": "INFO", "message": "PLC Generation Workflow started", "timestamp": "2025-08-25T17:00:38.331735", "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/IO Assignment_MTN6_MCM06_COMPLETE.xlsm", "project_name": "MTN6_MCM06"}
{"level": "INFO", "message": "Starting data processing step", "timestamp": "2025-08-25T17:00:38.332059", "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: ['Templates', 'Devices', 'Instructions', 'NETWORK(IOLINK)', 'NETWORK(EIP)', 'Part Number', 'IO Assignment MCM06', 'MCM06_DESC', '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']
NOTE: Ignored 2 rows from DESC sheet with an empty TAGNAME.
Classifying signals and adding IO paths...
Signal classification results:
SPARE: 656
I: 501
O: 262
IOLink: 200
Device type distribution:
M12DR: 640
Hub: 512
APF: 387
SIO: 32
IB16: 16
OB16E: 16
IB16S: 16
IO Path mapping results:
Successful mappings: 1619/1619 (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: ['NCP1_15_DPM1', 'NCS1_6_DPM1', 'NCS1_DPM1', 'NCS1_DPM2', 'NCS2_4_DPM1', 'NCS2_DPM1', 'NCS2_DPM2']
================================================================================
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 1630 rows
Sample of merged data:
TAGNAME TERM ... DEVICE_TYPE IO_PATH
0 S02_1_SIO1 IO0 ... SIO S02_1_SIO1_Data.Outputs.X7_A
1 S02_1_SIO1 IO1 ... SIO S02_1_SIO1_Data.Outputs.X7_B
2 S02_1_SIO1 IO2 ... SIO S02_1_SIO1_Data.Outputs.X8_A
3 S02_1_SIO1 IO3 ... SIO S02_1_SIO1_Data.Inputs.X8_B
4 S02_1_SIO1 SI0 ... SIO S02_1_SIO1:SI.Data[0].0
5 S02_1_SIO1 SI1 ... SIO S02_1_SIO1:SI.Data[0].1
6 S02_1_SIO1 SI2 ... SIO S02_1_SIO1:SI.Data[0].2
7 S02_1_SIO1 SI3 ... SIO S02_1_SIO1:SI.Data[0].3
8 S02_1_SIO1 SI4 ... SIO S02_1_SIO1:SI.Data[0].4
9 S02_1_SIO1 SI5 ... SIO S02_1_SIO1:SI.Data[0].5
[10 rows x 11 columns]
New Excel file created: MCM06_DESC_IP_MERGED.xlsx
The file contains all original sheets plus the new 'DESC_IP' sheet with merged data.
Reading input file: MCM06_DESC_IP_MERGED.xlsx
Removed 32 SPARE rows following FIO[number]H entries
Removed 168 SPARE rows following IOLink SOL entries
Removed 200 IOLink rows (including beacons, FIOH channels, and all other IOLink entries)
Added 2688 rows for solenoid valves
Removed 11 blank name/description rows
Saving output file: MCM06_OUTPUT.csv
Processing complete!
Created standard output file: DESC_IP_MERGED.xlsx
=== Step 1: PLC Data Generator stderr ===
{"level": "INFO", "message": "Data processing completed successfully", "timestamp": "2025-08-25T17:00:42.074933", "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-08-25T17:00:42.075185", "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_MTN6_MCM06_20250825_170038.log", "timestamp": "2025-08-25T17:00:43.737159", "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-08-25T17:00:43.738650", "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-08-25T17:00:43.738830", "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-08-25T17:00:43.749641", "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-08-25T17:00:43.749901", "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-08-25T17:00:43.750061", "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-08-25T17:00:43.760537", "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-08-25T17:00:43.765301", "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-08-25T17:00:43.768656", "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-08-25T17:00:43.772473", "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-08-25T17:00:43.776288", "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-08-25T17:00:43.779515", "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-08-25T17:00:43.782751", "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-08-25T17:00:43.790637", "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-08-25T17:00:43.794436", "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-08-25T17:00:43.797900", "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-08-25T17:00:43.801363", "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-08-25T17:00:43.805120", "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-08-25T17:00:43.808609", "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-08-25T17:00:43.811882", "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-08-25T17:00:43.815486", "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-08-25T17:00:43.819448", "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-08-25T17:00:43.822932", "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-08-25T17:00:43.826452", "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-08-25T17:00:43.829706", "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-08-25T17:00:43.833716", "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-08-25T17:00:43.840484", "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-08-25T17:00:43.845431", "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-08-25T17:00:43.850720", "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-08-25T17:00:43.854998", "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-08-25T17:00:43.859401", "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-08-25T17:00:43.863893", "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-08-25T17:00:43.868709", "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-08-25T17:00:43.873328", "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-08-25T17:00:43.877513", "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-08-25T17:00:43.882553", "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-08-25T17:00:43.886774", "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-08-25T17:00:43.886976", "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-08-25T17:00:44.674219", "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-08-25T17:00:44.681585", "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-08-25T17:00:44.685035", "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-08-25T17:00:44.686645", "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-08-25T17:00:44.749165", "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": "MCM06", "score": 12}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-08-25T17:00:44.749740", "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": 6}
{"level": "INFO", "message": "Successfully generated routine: outputs", "timestamp": "2025-08-25T17:00:44.750870", "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-08-25T17:00:44.751105", "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-08-25T17:00:44.755846", "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-08-25T17:00:44.756069", "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 NCP1_15: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.757046", "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 NCP1_21: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.757414", "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 NCP1_9: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.757844", "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 NCS1_4: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.758264", "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 NCS1_4: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.758812", "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 S02_1: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.759113", "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 NCS2_2: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.759450", "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 S02_2: {'EPC2', 'EPC1'}", "timestamp": "2025-08-25T17:00:44.759770", "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: {'NCP1_15': {'EPC2', 'EPC1'}, 'NCP1_21': {'EPC2', 'EPC1'}, 'NCP1_9': {'EPC2', 'EPC1'}, 'NCS1_4': {'EPC2', 'EPC1'}, 'S02_1': {'EPC2', 'EPC1'}, 'NCS2_2': {'EPC2', 'EPC1'}, 'S02_2': {'EPC2', 'EPC1'}}", "timestamp": "2025-08-25T17:00:44.759951", "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 06-01 candidates: ['NCP1_9', 'NCP1_10', 'NCP1_11', 'NCP1_12', 'NCP1_13', 'NCP1_14', 'NCP1_15', 'NCP1_16', 'NCP1_17', 'NCP1_18', 'NCP1_19', 'NCP1_20']", "timestamp": "2025-08-25T17:00:44.760461", "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 NCP1_10 in zone 06-01", "timestamp": "2025-08-25T17:00:44.760668", "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 NCP1_11 in zone 06-01", "timestamp": "2025-08-25T17:00:44.760832", "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 NCP1_12 in zone 06-01", "timestamp": "2025-08-25T17:00:44.760994", "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 NCP1_13 in zone 06-01", "timestamp": "2025-08-25T17:00:44.761146", "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 NCP1_14 in zone 06-01", "timestamp": "2025-08-25T17:00:44.761298", "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 NCP1_16 in zone 06-01", "timestamp": "2025-08-25T17:00:44.761457", "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 NCP1_17 in zone 06-01", "timestamp": "2025-08-25T17:00:44.761623", "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 NCP1_18 in zone 06-01", "timestamp": "2025-08-25T17:00:44.761756", "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 NCP1_19 in zone 06-01", "timestamp": "2025-08-25T17:00:44.761910", "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 NCP1_20 in zone 06-01", "timestamp": "2025-08-25T17:00:44.762071", "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-08-25T17:00:44.762259", "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": "06-01", "interlock": "MCM06", "dcs_list": ["NCP1_9_EPC1_DCS_CTRL.O1", "NCP1_9_EPC2_DCS_CTRL.O1", "NCP1_15_EPC1_DCS_CTRL.O1", "NCP1_15_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 06-02 candidates: ['NCS1_1', 'NCS1_2', 'NCS1_3', 'NCS1_4', 'NCS1_5', 'NCS1_6', 'NCS1_7', 'NCS1_8', 'NCS1_9']", "timestamp": "2025-08-25T17:00:44.762629", "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 NCS1_1 in zone 06-02", "timestamp": "2025-08-25T17:00:44.762809", "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 NCS1_2 in zone 06-02", "timestamp": "2025-08-25T17:00:44.762983", "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 NCS1_3 in zone 06-02", "timestamp": "2025-08-25T17:00:44.763160", "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 NCS1_5 in zone 06-02", "timestamp": "2025-08-25T17:00:44.763333", "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 NCS1_6 in zone 06-02", "timestamp": "2025-08-25T17:00:44.763477", "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 NCS1_7 in zone 06-02", "timestamp": "2025-08-25T17:00:44.763632", "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 NCS1_8 in zone 06-02", "timestamp": "2025-08-25T17:00:44.763757", "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 NCS1_9 in zone 06-02", "timestamp": "2025-08-25T17:00:44.763901", "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-08-25T17:00:44.764052", "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": "06-02", "interlock": "MCM06", "dcs_list": ["NCS1_4_EPC1_DCS_CTRL.O1", "NCS1_4_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 06-03 candidates: ['NCP1_21', 'NCS2_1', 'NCS2_2', 'NCS2_3', 'NCS2_4', 'NCS2_5', 'NCS2_6', 'NCS2_7']", "timestamp": "2025-08-25T17:00:44.764417", "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 NCS2_1 in zone 06-03", "timestamp": "2025-08-25T17:00:44.764637", "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 NCS2_3 in zone 06-03", "timestamp": "2025-08-25T17:00:44.764819", "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 NCS2_4 in zone 06-03", "timestamp": "2025-08-25T17:00:44.764976", "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 NCS2_5 in zone 06-03", "timestamp": "2025-08-25T17:00:44.765131", "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 NCS2_6 in zone 06-03", "timestamp": "2025-08-25T17:00:44.765293", "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 NCS2_7 in zone 06-03", "timestamp": "2025-08-25T17:00:44.765456", "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-08-25T17:00:44.765612", "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": "06-03", "interlock": "MCM06", "dcs_list": ["NCP1_21_EPC1_DCS_CTRL.O1", "NCP1_21_EPC2_DCS_CTRL.O1", "NCS2_2_EPC1_DCS_CTRL.O1", "NCS2_2_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 06-04 candidates: ['S02_1']", "timestamp": "2025-08-25T17:00:44.765934", "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-08-25T17:00:44.766105", "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": "06-04", "interlock": "MCM06", "dcs_list": ["S02_1_EPC1_DCS_CTRL.O1", "S02_1_EPC2_DCS_CTRL.O1"]}
{"level": "DEBUG", "message": "Zone 06-05 candidates: ['S02_2']", "timestamp": "2025-08-25T17:00:44.766411", "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-08-25T17:00:44.766624", "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": "06-05", "interlock": "MCM06", "dcs_list": ["S02_2_EPC1_DCS_CTRL.O1", "S02_2_EPC2_DCS_CTRL.O1"]}
{"level": "INFO", "message": "Successfully generated routine: zones", "timestamp": "2025-08-25T17:00:44.766818", "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-08-25T17:00:44.767014", "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-08-25T17:00:44.768703", "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-08-25T17:00:44.768909", "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 11 tags", "timestamp": "2025-08-25T17:00:44.772829", "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-08-25T17:00:44.773010", "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: 49 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS);", "timestamp": "2025-08-25T17:00:44.773209", "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: 3 rungs | example: XIC(EStop_MCM_OK)XIC(EStop_06_01_OK)[OTE(NCP1_9_VFD1:SO.STOOutput),OTE(NCP1_11_VFD1:SO.STOOutput),OTE(NCP1_12_VFD1:SO.STOOutput),OTE(NCP1_13_VFD1:SO.STOOutpu...", "timestamp": "2025-08-25T17:00:44.773630", "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: 14 rungs | example: [XIC(SFT_NCP1_9_S1_PB) ,XIC(SFT_MCM_S_PB)]OTE(RST_NCP1_9_EPC1_ESTOP);", "timestamp": "2025-08-25T17:00:44.773900", "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: 6 rungs | example: XIC(NCP1_9_EPC1_DCS_CTRL.O1)XIC(NCP1_9_EPC2_DCS_CTRL.O1)XIC(NCP1_15_EPC1_DCS_CTRL.O1)XIC(NCP1_15_EPC2_DCS_CTRL.O1)OTE(EStop_06_01_OK);", "timestamp": "2025-08-25T17:00:44.774069", "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: 17 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-08-25T17:00:44.774257", "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-08-25T17:00:44.774435", "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-08-25T17:00:44.774602", "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 SafetyProgram_Generated.L5X", "timestamp": "2025-08-25T17:00:44.783358", "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 SafetyProgram_Generated.L5X", "timestamp": "2025-08-25T17:00:44.783566", "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-08-25T17:00:44.783743", "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-08-25T17:00:44.783895", "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-08-25T17:00:44.784103", "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-08-25T17:00:44.784254", "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-08-25T17:00:44.784440", "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-08-25T17:00:44.928634", "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-08-25T17:00:44.991774", "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": "MCM06", "score": 12}
{"level": "DEBUG", "message": "Zones: loaded", "timestamp": "2025-08-25T17:00:44.992331", "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": 6}
{"level": "DEBUG", "message": "Extracting PMM data", "timestamp": "2025-08-25T17:00:45.148768", "module": "DataLoader", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "data_extraction", "type": "PMM"}
{"level": "INFO", "message": "Data: PMM entries=1", "timestamp": "2025-08-25T17:00:45.150028", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "PMM processing PDP08_PMM1", "timestamp": "2025-08-25T17:00:45.150281", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "PMM PDP08_PMM1 DPM=NCS1_6_DPM1", "timestamp": "2025-08-25T17:00:45.150456", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "PMM PDP08_PMM1 configuration stored", "timestamp": "2025-08-25T17:00:45.151113", "module": "DataLoader", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Data: PMM configs=1", "timestamp": "2025-08-25T17:00:45.151460", "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-08-25T17:00:45.151616", "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-08-25T17:00:45.152647", "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-08-25T17:00:45.152840", "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=325 | standard=25 safety=78 dcs=15 modules=199", "timestamp": "2025-08-25T17:00:45.153784", "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 325 controller tags", "timestamp": "2025-08-25T17:00:45.154020", "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-08-25T17:00:45.154236", "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-08-25T17:00:45.154416", "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-08-25T17:00:45.154552", "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-08-25T17:00:45.154685", "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-08-25T17:00:45.154802", "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-08-25T17:00:45.154920", "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-08-25T17:00:45.156053", "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-08-25T17:00:45.156226", "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-08-25T17:00:45.158378", "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-08-25T17:00:45.159055", "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-08-25T17:00:45.160873", "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-08-25T17:00:45.161341", "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-08-25T17:00:45.162675", "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-08-25T17:00:45.162935", "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-08-25T17:00:45.165717", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: encoder", "timestamp": "2025-08-25T17:00:45.166199", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: encoder", "timestamp": "2025-08-25T17:00:45.166628", "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-08-25T17:00:45.166860", "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 11 rows", "timestamp": "2025-08-25T17:00:45.167034", "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: MCM06 -> Local:5:I.Data.0", "timestamp": "2025-08-25T17:00:45.167274", "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: NCP1_9_S1_PB -> NCP1_10A_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.167461", "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: NCP1_9_S2_PB -> NCP1_10B_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.167614", "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: NCP1_15_S2_PB -> NCP1_14B_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.167798", "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: NCP1_15_S1_PB -> NCP1_14C_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.167983", "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: NCP1_21_S2_PB -> NCP1_18B_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.168127", "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: NCP1_21_S1_PB -> NCP1_19_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.168327", "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: NCS1_4_S1_PB -> NCS1_2_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.168461", "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: NCS1_4_S2_PB -> NCS1_5B_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.168609", "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: NCS2_2_S1_PB -> NCS2_2_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.168744", "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: NCS2_2_S2_PB -> NCS2_3A_VFD1:I.IO_0", "timestamp": "2025-08-25T17:00:45.168884", "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 11 rungs", "timestamp": "2025-08-25T17:00:45.169013", "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(MCM06);", "timestamp": "2025-08-25T17:00:45.169123", "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(NCP1_10A_VFD1:I.IO_0)OTE(NCP1_9_S1_PB);", "timestamp": "2025-08-25T17:00:45.169227", "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(NCP1_10B_VFD1:I.IO_0)OTE(NCP1_9_S2_PB);", "timestamp": "2025-08-25T17:00:45.169408", "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(NCP1_14C_VFD1:I.IO_0)OTE(NCP1_15_S1_PB);", "timestamp": "2025-08-25T17:00:45.169598", "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(NCP1_14B_VFD1:I.IO_0)OTE(NCP1_15_S2_PB);", "timestamp": "2025-08-25T17:00:45.169743", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generated rung 6: XIC(NCP1_19_VFD1:I.IO_0)OTE(NCP1_21_S1_PB);", "timestamp": "2025-08-25T17:00:45.169858", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generated rung 7: XIC(NCP1_18B_VFD1:I.IO_0)OTE(NCP1_21_S2_PB);", "timestamp": "2025-08-25T17:00:45.169964", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generated rung 8: XIC(NCS1_2_VFD1:I.IO_0)OTE(NCS1_4_S1_PB);", "timestamp": "2025-08-25T17:00:45.170064", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generated rung 9: XIC(NCS1_5B_VFD1:I.IO_0)OTE(NCS1_4_S2_PB);", "timestamp": "2025-08-25T17:00:45.170164", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generated rung 10: XIC(NCS2_2_VFD1:I.IO_0)OTE(NCS2_2_S1_PB);", "timestamp": "2025-08-25T17:00:45.170318", "module": "src.routines.safety_tag_map", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generated rung 11: XIC(NCS2_3A_VFD1:I.IO_0)OTE(NCS2_2_S2_PB);", "timestamp": "2025-08-25T17:00:45.170456", "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 11 total rungs", "timestamp": "2025-08-25T17:00:45.170560", "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-08-25T17:00:45.170664", "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-08-25T17:00:45.170781", "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-08-25T17:00:45.171021", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: station_s_pb", "timestamp": "2025-08-25T17:00:45.171144", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: station_s_pb", "timestamp": "2025-08-25T17:00:45.171414", "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_ss_pb cannot generate with current data", "timestamp": "2025-08-25T17:00:45.171552", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: station_epc", "timestamp": "2025-08-25T17:00:45.171669", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: station_epc", "timestamp": "2025-08-25T17:00:45.171960", "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-08-25T17:00:45.172090", "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-08-25T17:00:45.172455", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "DEBUG", "message": "Generating routine: pmm", "timestamp": "2025-08-25T17:00:45.172589", "module": "src.plugin_system", "file": "logging_config.py", "line": 128, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py"}
{"level": "INFO", "message": "Successfully generated routine: pmm", "timestamp": "2025-08-25T17:00:45.172776", "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-08-25T17:00:45.172940", "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-08-25T17:00:45.173346", "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-08-25T17:00:45.174640", "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-08-25T17:00:45.174819", "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-08-25T17:00:45.174964", "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-08-25T17:00:45.175120", "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-08-25T17:00:45.175272", "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, 'apf': True, 'flow_ctrl': True, 'estop_check': True, 'encoder': True, 'safety_tag_map': True, 'station_jr_pb': True, 'station_s_pb': True, 'station_ss_pb': False, 'station_epc': True, 'jpe': True, 'pmm': True, 'cb_monitor': False, 'belt_tracking': True, 'main_routine': True}", "timestamp": "2025-08-25T17:00:45.175412", "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, R040_APF, R050_FLOW_CTRL, R060_PMM, R080_ENCODER, R090_STATION_JR_PB, R095_STATION_S_PB, R097_STATION_EPC, R100_JPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking", "timestamp": "2025-08-25T17:00:45.175538", "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-08-25T17:00:45.175650", "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-08-25T17:00:45.175756", "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: 8 rungs | example: NOP();", "timestamp": "2025-08-25T17:00:45.176047", "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: 43 rungs | example: NOP();", "timestamp": "2025-08-25T17:00:45.176197", "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: 37 rungs | example: NOP();", "timestamp": "2025-08-25T17:00:45.176322", "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: 26 rungs | example: XIC(NCP1_11_VFD1.CTRL.STS.Enabled)OTE(NCP1_9_VFD1.CTRL.CMD.Interlock);", "timestamp": "2025-08-25T17:00:45.176457", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R120_ESTOP_CHECK: 16 rungs | example: [XIO(NCP1_9_VFD1:SI.In00Data) ,XIO(NCP1_9_VFD1:SI.In01Data) ]XIO(NCP1_9_VFD1:SO.STOOutput)XIO(NCP1_10A_VFD1:SO.STOOutput)XIO(NCP1_10B_VFD1:SO.STOOutput)XIO(N...", "timestamp": "2025-08-25T17:00:45.176590", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R080_ENCODER: 18 rungs | example: AOI_ENCODER(NCP1_13_ENCODER.AOI,NCP1_13_ENCODER.HMI,NCP1_13_ENCODER.CTRL,NCP1_13_VFD1.CTRL,NCP1_12_VFD1.CTRL,NO_DOWNSTREAM,NCP1_13_VFD1:I.In_1,NCP1_13_VFD1:I...", "timestamp": "2025-08-25T17:00:45.176805", "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: 12 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);", "timestamp": "2025-08-25T17:00:45.177200", "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: 6 rungs | example: AOI_STATION_JR_PB(NCP1_16_JR1_PB.AOI,NCP1_16_JR1_PB.HMI,NCP1_16_JR1_PB.CTRL,NO_PARTNER,NCP1_16_VFD1:I.IO_0,NCP1_16_VFD1:O.IO_1)MOVE(NCP1_16_JR1_PB.CTRL.STS.L...", "timestamp": "2025-08-25T17:00:45.177344", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R095_STATION_S_PB: 10 rungs | example: AOI_STATION_S_PB(NCP1_15_S1_PB_STATION.AOI,NCP1_15_S1_PB_STATION.HMI,NCP1_15_S1_PB_STATION.CTRL,NCP1_15_VFD1.CTRL,NCP1_14C_VFD1:I.IO_0,NCP1_14C_VFD1:O.IO_1);", "timestamp": "2025-08-25T17:00:45.177457", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R097_STATION_EPC: 14 rungs | example: AOI_STATION_EPC(NCP1_15_EPC1_STATION.AOI,MCM.CTRL,NCP1_15_EPC1_STATION.HMI,NCP1_15_S2_PB_STATION.CTRL,NCP1_15_VFD1:I.ConnectionFaulted,NCP1_15_VFD1:SI.In00Da...", "timestamp": "2025-08-25T17:00:45.177569", "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: 27 rungs | example: AOI_JPE(NCP1_12_TPE1.AOI,NCP1_12_TPE1.HMI,NCP1_12_TPE1.CTRL,NCP1_12_VFD1.CTRL,?,NCP1_12_VFD1:I.ConnectionFaulted,NCP1_12_VFD1:I.In_2,YES,?);", "timestamp": "2025-08-25T17:00:45.177674", "module": "ModernMainProgramGenerator", "file": "logging_config.py", "line": 126, "function": "_log_with_context", "pathname": "/mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/Routines Generator/src/logging_config.py", "stage": "summary"}
{"level": "INFO", "message": "- R060_PMM: 2 rungs | example: NOP();", "timestamp": "2025-08-25T17:00:45.177776", "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: 39 rungs | example: NOP();", "timestamp": "2025-08-25T17:00:45.177880", "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(R040_APF,0) ,JSR(R050_FLOW_CTRL,0) ,JSR(R120_ESTOP_CHECK,0) ,JSR(R080_ENCODER,0) ,...", "timestamp": "2025-08-25T17:00:45.177984", "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-08-25T17:00:45.178089", "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 MainProgram_Generated.L5X", "timestamp": "2025-08-25T17:00:45.240821", "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 MainProgram_Generated.L5X", "timestamp": "2025-08-25T17:00:45.241053", "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-08-25T17:00:45.241348", "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-08-25T17:00:45.241532", "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-08-25T17:00:45.241702", "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 SafetyTagMapping.txt", "timestamp": "2025-08-25T17:00:45.367672", "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: 11", "timestamp": "2025-08-25T17:00:45.367987", "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-08-25T17:00:45.368251", "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 NCP1_16_JR2_PB
Found STATION_JR_PB config for NCP1_16_JR1_PB
Found STATION_JR_PB config for NCS1_3_JR1_PB
Found STATION_JR_PB config for S02_1_JR1_PB
Found STATION_JR_PB config for S02_1_JR2_PB
Found STATION_JR_PB config for S02_2_JR1_PB
Found STATION_S_PB config for NCP1_9_S1_PB
Found STATION_S_PB config for NCP1_9_S2_PB
Found STATION_S_PB config for NCP1_15_S2_PB
Found STATION_S_PB config for NCP1_15_S1_PB
Found STATION_S_PB config for NCP1_21_S2_PB
Found STATION_S_PB config for NCP1_21_S1_PB
Found STATION_S_PB config for NCS1_4_S1_PB
Found STATION_S_PB config for NCS1_4_S2_PB
Found STATION_S_PB config for NCS2_2_S1_PB
Found STATION_S_PB config for NCS2_2_S2_PB
Found STATION_EPC config for NCP1_9_EPC1
Found STATION_EPC config for NCS1_4_EPC1
Found STATION_EPC config for S02_1_EPC1
Found STATION_EPC config for NCS2_2_EPC1
Found STATION_EPC config for S02_2_EPC1
Found STATION_EPC config for NCP1_15_EPC1
Found STATION_EPC config for NCP1_21_EPC1
Found STATION_EPC config for NCP1_9_EPC2
Found STATION_EPC config for NCS1_4_EPC2
Found STATION_EPC config for S02_1_EPC2
Found STATION_EPC config for NCS2_2_EPC2
Found STATION_EPC config for S02_2_EPC2
Found STATION_EPC config for NCP1_15_EPC2
Found STATION_EPC config for NCP1_21_EPC2
Found ENCODER config for S02_1_ENCODER (upstream: NO_UPSTREAM, downstream: S02_2_VFD1.CTRL)
Found ENCODER config for S02_2_ENCODER (upstream: S02_1_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for NCP1_13_ENCODER (upstream: NCP1_12_VFD1.CTRL, downstream: NO_DOWNSTREAM)
[WARNING] No VFD found for encoder NCP1_14_ENCODER with name NCP1_14_VFD1
Found ENCODER config for NCP1_17_ENCODER (upstream: NCP1_16_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for NCP1_19_ENCODER (upstream: NO_UPSTREAM, downstream: NCP1_20_VFD1.CTRL)
Found ENCODER config for NCS1_2_ENCODER (upstream: NCS1_1_VFD1.CTRL, downstream: NCS1_3_VFD1.CTRL)
Found ENCODER config for NCS1_4_ENCODER (upstream: NCS1_3_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for NCS1_6_ENCODER (upstream: NO_UPSTREAM, downstream: NCS1_7_VFD1.CTRL)
Found ENCODER config for NCS1_7_ENCODER (upstream: NCS1_6_VFD1.CTRL, downstream: NCS1_8_VFD1.CTRL)
Found ENCODER config for NCS1_8_ENCODER (upstream: NCS1_7_VFD1.CTRL, downstream: NCS1_9_VFD1.CTRL)
Found ENCODER config for NCS1_9_ENCODER (upstream: NCS1_8_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for NCS2_2_ENCODER (upstream: NCS2_1_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for NCS2_4_ENCODER (upstream: NO_UPSTREAM, downstream: NCS2_5_VFD1.CTRL)
Found ENCODER config for NCS2_5_ENCODER (upstream: NCS2_4_VFD1.CTRL, downstream: NCS2_6_VFD1.CTRL)
Found ENCODER config for NCS2_6_ENCODER (upstream: NCS2_5_VFD1.CTRL, downstream: NCS2_7_VFD1.CTRL)
Found ENCODER config for NCS2_7_ENCODER (upstream: NCS2_6_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found ENCODER config for NCP1_15_ENCODER (upstream: NO_UPSTREAM, downstream: NCP1_16_VFD1.CTRL)
Found ENCODER config for NCP1_21_ENCODER (upstream: NCP1_20_VFD1.CTRL, downstream: NO_DOWNSTREAM)
Found JPE config for NCP1_12_TPE1 (missing station, missing beacon)
Found JPE config for NCP1_13_TPE1 (missing station, missing beacon)
Found JPE config for NCP1_17_TPE1 (missing station, missing beacon)
Found JPE config for NCP1_17_TPE2 (missing station, missing beacon)
Found JPE config for NCP1_19_TPE1 (missing station, missing beacon)
Found JPE config for NCP1_19_TPE2 (missing station, missing beacon)
Found JPE config for NCP1_9_TPE1 (missing station, missing beacon)
Found JPE config for NCS1_2_TPE1 (missing station, missing beacon)
Found JPE config for NCS1_1_TPE1 (missing station, missing beacon)
Found JPE config for NCS1_4_TPE1 (missing station, missing beacon)
Found JPE config for NCS1_4_TPE2 (missing station, missing beacon)
Found JPE config for NCS1_6_TPE1 (missing station, missing beacon)
Found JPE config for NCS1_6_TPE2 (missing station, missing beacon)
Found JPE config for NCS1_7_TPE1 (missing station, missing beacon)
Found JPE config for NCS1_8_TPE1 (missing station, missing beacon)
Found JPE config for NCS1_9_TPE1 (missing station, missing beacon)
Found JPE config for NCS2_2_TPE1 (missing station)
Found JPE config for NCS2_2_TPE2 (missing station)
Found JPE config for NCS2_4_TPE1 (missing station, missing beacon)
Found JPE config for NCS2_4_TPE2 (missing station, missing beacon)
Found JPE config for NCS2_5_TPE1 (missing station, missing beacon)
Found JPE config for NCS2_6_TPE1 (missing station, missing beacon)
Found JPE config for NCS2_7_TPE1 (missing station, missing beacon)
Found JPE config for NCP1_15_TPE1 (missing station)
Found JPE config for NCP1_15_TPE2 (missing station)
Found JPE config for NCP1_21_TPE1 (missing station, missing beacon)
Found JPE config for NCP1_21_TPE2 (missing station, missing beacon)
FIOM NCP1_20_FIO1 -> DPM NCP1_15_DPM1
FIOM PDP08_FIO1 -> DPM NCS1_6_DPM1
FIOM S02_1_FIO1 -> DPM NCS1_DPM1
FIOM S02_1_FIO2 -> DPM NCS1_DPM1
FIOM S02_1_FIO3 -> DPM NCS1_DPM1
FIOM S02_1_FIO4 -> DPM NCS1_DPM1
FIOM S02_1_FIO5 -> DPM NCS1_DPM2
FIOM S02_1_FIO6 -> DPM NCS1_DPM2
FIOM S02_1_FIO7 -> DPM NCS1_DPM2
FIOM S02_1_FIO8 -> DPM NCS1_DPM2
FIOM S02_1_FIO9 -> DPM NCS1_DPM1
FIOM S02_1_FIO10 -> DPM NCS1_DPM1
FIOM S02_1_FIO11 -> DPM NCS1_DPM1
FIOM S02_1_FIO12 -> DPM NCS1_DPM1
FIOM S02_1_FIO13 -> DPM NCS1_DPM1
FIOM S02_1_FIO14 -> DPM NCS1_DPM1
FIOM S02_1_FIO15 -> DPM NCS1_DPM2
FIOM S02_1_FIO16 -> DPM NCS1_DPM2
FIOM S02_1_FIO17 -> DPM NCS1_DPM2
FIOM S02_1_FIO18 -> DPM NCS1_DPM2
FIOM S02_1_FIO19 -> DPM NCS1_DPM2
FIOM S02_1_FIO20 -> DPM NCS1_DPM2
FIOM S02_2_FIO1 -> DPM NCS2_DPM1
FIOM S02_2_FIO2 -> DPM NCS2_DPM1
FIOM S02_2_FIO3 -> DPM NCS2_DPM1
FIOM S02_2_FIO4 -> DPM NCS2_DPM1
FIOM S02_2_FIO5 -> DPM NCS2_DPM2
FIOM S02_2_FIO6 -> DPM NCS2_DPM2
FIOM S02_2_FIO7 -> DPM NCS2_DPM2
FIOM S02_2_FIO8 -> DPM NCS2_DPM2
FIOM S02_2_FIO9 -> DPM NCS2_DPM1
FIOM S02_2_FIO10 -> DPM NCS2_DPM1
FIOM S02_2_FIO11 -> DPM NCS2_DPM1
FIOM S02_2_FIO12 -> DPM NCS2_DPM1
FIOM S02_2_FIO13 -> DPM NCS2_DPM1
FIOM S02_2_FIO14 -> DPM NCS2_DPM1
FIOM S02_2_FIO15 -> DPM NCS2_DPM2
FIOM S02_2_FIO16 -> DPM NCS2_DPM2
FIOM S02_2_FIO17 -> DPM NCS2_DPM2
FIOM S02_2_FIO18 -> DPM NCS2_DPM2
FIOM S02_2_FIO19 -> DPM NCS2_DPM2
FIOM S02_2_FIO20 -> DPM NCS2_DPM2
APF NCP1_9_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_10A_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_10B_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_11_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_12_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_13_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_14A_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_14B_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_14C_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_14D_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_15_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_16_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_17_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_18A_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_18B_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_19_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_20_VFD1 -> DPM NCP1_15_DPM1
APF NCP1_21_VFD1 -> DPM NCP1_15_DPM1
APF NCS1_1_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_2_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_3_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_4_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_5A_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_5B_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_6_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_7_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_8_VFD1 -> DPM NCS1_6_DPM1
APF NCS1_9_VFD1 -> DPM NCS1_6_DPM1
APF NCS2_1_VFD1 -> DPM NCS2_4_DPM1
APF NCS2_2_VFD1 -> DPM NCS2_4_DPM1
APF NCS2_3A_VFD1 -> DPM NCS2_4_DPM1
APF NCS2_3B_VFD1 -> DPM NCS2_4_DPM1
APF NCS2_4_VFD1 -> DPM NCS2_4_DPM1
APF NCS2_5_VFD1 -> DPM NCS2_4_DPM1
APF NCS2_6_VFD1 -> DPM NCS2_4_DPM1
APF NCS2_7_VFD1 -> DPM NCS2_4_DPM1
- Added 16 E-stop check rungs
[R090_STATION_JR_PB] Starting STATION_JR_PB routine generation...
Found 6 STATION_JR_PB configurations
Generated 6 STATION_JR_PB rungs
[R0100_JPE] Starting JPE routine generation...
Found 27 JPE configurations
Generated 27 JPE rungs
Belt tracking for NCP1_9_VFD1 -> zzz_NCP1_9Tracking
Belt tracking for NCP1_10A_VFD1 -> zzz_NCP1_10ATracking
Belt tracking for NCP1_10B_VFD1 -> zzz_NCP1_10BTracking
Belt tracking for NCP1_11_VFD1 -> zzz_NCP1_11Tracking
Belt tracking for NCP1_12_VFD1 -> zzz_NCP1_12Tracking
Belt tracking for NCP1_13_VFD1 -> zzz_NCP1_13Tracking
Belt tracking for NCP1_14A_VFD1 -> zzz_NCP1_14ATracking
Belt tracking for NCP1_14B_VFD1 -> zzz_NCP1_14BTracking
Belt tracking for NCP1_14C_VFD1 -> zzz_NCP1_14CTracking
Belt tracking for NCP1_14D_VFD1 -> zzz_NCP1_14DTracking
Belt tracking for NCP1_15_VFD1 -> zzz_NCP1_15Tracking
Belt tracking for NCP1_16_VFD1 -> zzz_NCP1_16Tracking
Belt tracking for NCP1_17_VFD1 -> zzz_NCP1_17Tracking
Belt tracking for NCP1_18A_VFD1 -> zzz_NCP1_18ATracking
Belt tracking for NCP1_18B_VFD1 -> zzz_NCP1_18BTracking
Belt tracking for NCP1_19_VFD1 -> zzz_NCP1_19Tracking
Belt tracking for NCP1_20_VFD1 -> zzz_NCP1_20Tracking
Belt tracking for NCP1_21_VFD1 -> zzz_NCP1_21Tracking
Belt tracking for NCS1_1_VFD1 -> zzz_NCS1_1Tracking
Belt tracking for NCS1_2_VFD1 -> zzz_NCS1_2Tracking
Belt tracking for NCS1_3_VFD1 -> zzz_NCS1_3Tracking
Belt tracking for NCS1_4_VFD1 -> zzz_NCS1_4Tracking
Belt tracking for NCS1_5A_VFD1 -> zzz_NCS1_5ATracking
Belt tracking for NCS1_5B_VFD1 -> zzz_NCS1_5BTracking
Belt tracking for NCS1_6_VFD1 -> zzz_NCS1_6Tracking
Belt tracking for NCS1_7_VFD1 -> zzz_NCS1_7Tracking
Belt tracking for NCS1_8_VFD1 -> zzz_NCS1_8Tracking
Belt tracking for NCS1_9_VFD1 -> zzz_NCS1_9Tracking
Belt tracking for NCS2_1_VFD1 -> zzz_NCS2_1Tracking
Belt tracking for NCS2_2_VFD1 -> zzz_NCS2_2Tracking
Belt tracking for NCS2_3A_VFD1 -> zzz_NCS2_3ATracking
Belt tracking for NCS2_3B_VFD1 -> zzz_NCS2_3BTracking
Belt tracking for NCS2_4_VFD1 -> zzz_NCS2_4Tracking
Belt tracking for NCS2_5_VFD1 -> zzz_NCS2_5Tracking
Belt tracking for NCS2_6_VFD1 -> zzz_NCS2_6Tracking
Belt tracking for NCS2_7_VFD1 -> zzz_NCS2_7Tracking
Belt tracking for S02_1_VFD1 -> zzz_S02_1Tracking
Belt tracking for S02_2_VFD1 -> zzz_S02_2Tracking
- Added 38 belt tracking AOI calls
Created safety tag mapping file: SafetyTagMapping.txt
=== Step 2: Routines Generator stderr ===
[17:00:43] [INFO] [logging_config.py:128:_log_with_context] Logging to file: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/logs/workflow_MTN6_MCM06_20250825_170038.log
[17:00:43] [INFO] [logging_config.py:128:_log_with_context] === Generating All PLC Artifacts ===
[17:00:43] [INFO] [logging_config.py:128:_log_with_context] Generating SafetyProgram L5X...
[17:00:43] [WARNING] [logging_config.py:128:_log_with_context] LimitedSafetyProgramGenerator is deprecated; using ModernSafetyProgramGenerator
[17:00:43] [INFO] [logging_config.py:128:_log_with_context] Starting ModernSafetyProgramGenerator generation
[17:00:43] [DEBUG] [logging_config.py:128:_log_with_context] Creating SafetyProgram XML structure
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: main_routine (core)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: apf (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: belt_tracking (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: cb_monitor (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: d2c_chute (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: dpm (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: encoder (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estops (safety)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: estop_check (safety)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: extendo (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fioh (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fiom (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: flow_ctrl (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: fpe (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: inputs (safety)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: jpe (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: mcm (core)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: outputs (safety)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pb_chute (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: pmm (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: rack (core)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: resets (safety)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: safety_tag_map (core)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: speed_ctrl (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_epc (safety)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_chute (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_jr_pb (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_ss_pb (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: station_s_pb (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: taching_belts (device)
[17:00:43] [DEBUG] [logging_config.py:126:_log_with_context] Registered plugin: zones (safety)
[17:00:43] [INFO] [logging_config.py:128:_log_with_context] Generating safety routines...
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: inputs
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: inputs
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: outputs
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: outputs
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: resets
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: resets
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: zones
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for NCP1_15: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for NCP1_21: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for NCP1_9: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for NCS1_4: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for NCS1_4: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for S02_1: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for NCS2_2: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Found DCS controllers for S02_2: {'EPC2', 'EPC1'}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Available DCS controllers: {'NCP1_15': {'EPC2', 'EPC1'}, 'NCP1_21': {'EPC2', 'EPC1'}, 'NCP1_9': {'EPC2', 'EPC1'}, 'NCS1_4': {'EPC2', 'EPC1'}, 'S02_1': {'EPC2', 'EPC1'}, 'NCS2_2': {'EPC2', 'EPC1'}, 'S02_2': {'EPC2', 'EPC1'}}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Zone 06-01 candidates: ['NCP1_9', 'NCP1_10', 'NCP1_11', 'NCP1_12', 'NCP1_13', 'NCP1_14', 'NCP1_15', 'NCP1_16', 'NCP1_17', 'NCP1_18', 'NCP1_19', 'NCP1_20']
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_10 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_11 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_12 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_13 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_14 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_16 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_17 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_18 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_19 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCP1_20 in zone 06-01
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Zone 06-02 candidates: ['NCS1_1', 'NCS1_2', 'NCS1_3', 'NCS1_4', 'NCS1_5', 'NCS1_6', 'NCS1_7', 'NCS1_8', 'NCS1_9']
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_1 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_2 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_3 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_5 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_6 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_7 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_8 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS1_9 in zone 06-02
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Zone 06-03 candidates: ['NCP1_21', 'NCS2_1', 'NCS2_2', 'NCS2_3', 'NCS2_4', 'NCS2_5', 'NCS2_6', 'NCS2_7']
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS2_1 in zone 06-03
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS2_3 in zone 06-03
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS2_4 in zone 06-03
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS2_5 in zone 06-03
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS2_6 in zone 06-03
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] No DCS controllers found for base NCS2_7 in zone 06-03
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Zone 06-04 candidates: ['S02_1']
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Zone 06-05 candidates: ['S02_2']
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: rung
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: zones
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estops
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estops
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Safety routine generation results: {'inputs': True, 'outputs': True, 'resets': True, 'zones': True, 'estops': True}
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag map with 11 tags
[17:00:44] [INFO] [logging_config.py:126:_log_with_context] Routines created (6): MainRoutine, R010_INPUTS, R011_OUTPUTS, R012_RESETS, R020_ESTOPS, R030_ZONES
[17:00:44] [INFO] [logging_config.py:126:_log_with_context] - R010_INPUTS: 49 rungs | example: XIC(Local:7:I.Pt02.Status)XIC(Local:7:I.Pt03.Status)OTE(MCM_EPB_STATUS);
[17:00:44] [INFO] [logging_config.py:126:_log_with_context] - R011_OUTPUTS: 3 rungs | example: XIC(EStop_MCM_OK)XIC(EStop_06_01_OK)[OTE(NCP1_9_VFD1:SO.STOOutput),OTE(NCP1_11_VFD1:SO.STOOutput),OTE(NCP1_12_VFD1:SO.STOOutput),OTE(NCP1_13_VFD1:SO.STOOutpu...
[17:00:44] [INFO] [logging_config.py:126:_log_with_context] - R012_RESETS: 14 rungs | example: [XIC(SFT_NCP1_9_S1_PB) ,XIC(SFT_MCM_S_PB)]OTE(RST_NCP1_9_EPC1_ESTOP);
[17:00:44] [INFO] [logging_config.py:126:_log_with_context] - R030_ZONES: 6 rungs | example: XIC(NCP1_9_EPC1_DCS_CTRL.O1)XIC(NCP1_9_EPC2_DCS_CTRL.O1)XIC(NCP1_15_EPC1_DCS_CTRL.O1)XIC(NCP1_15_EPC2_DCS_CTRL.O1)OTE(EStop_06_01_OK);
[17:00:44] [INFO] [logging_config.py:126:_log_with_context] - R020_ESTOPS: 17 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);
[17:00:44] [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) ];
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernSafetyProgramGenerator generation
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Written ModernSafetyProgramGenerator to SafetyProgram_Generated.L5X
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] SafetyProgram written to SafetyProgram_Generated.L5X
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Generating MainProgram L5X...
[17:00:44] [WARNING] [logging_config.py:128:_log_with_context] LimitedMainProgramGenerator is deprecated; using ModernMainProgramGenerator
[17:00:44] [INFO] [logging_config.py:128:_log_with_context] Starting ModernMainProgramGenerator generation
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Creating MainProgram XML structure
[17:00:44] [DEBUG] [logging_config.py:128:_log_with_context] Adding controller tags...
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: subsystem key
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: heuristic best match
[17:00:44] [DEBUG] [logging_config.py:126:_log_with_context] Zones: loaded
[17:00:45] [DEBUG] [logging_config.py:126:_log_with_context] Extracting PMM data
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Data: PMM entries=1
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] PMM processing PDP08_PMM1
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP08_PMM1 DPM=NCS1_6_DPM1
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] PMM PDP08_PMM1 configuration stored
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Data: PMM configs=1
[17:00:45] [DEBUG] [logging_config.py:126:_log_with_context] Extracting CB_MONITOR data
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Data: CB PDPs=0
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Data: CB configs=0
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] Tags created: total=325 | standard=25 safety=78 dcs=15 modules=199
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Added 325 controller tags
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Generating main program routines...
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: mcm
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: mcm
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: rack
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: rack
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: dpm
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: dpm
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: fiom
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: fiom
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: apf
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: apf
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: flow_ctrl
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: flow_ctrl
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: estop_check
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: estop_check
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: encoder
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: encoder
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: safety_tag_map
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: RST data has 11 rows
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: MCM06 -> Local:5:I.Data.0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCP1_9_S1_PB -> NCP1_10A_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCP1_9_S2_PB -> NCP1_10B_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCP1_15_S2_PB -> NCP1_14B_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCP1_15_S1_PB -> NCP1_14C_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCP1_21_S2_PB -> NCP1_18B_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCP1_21_S1_PB -> NCP1_19_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCS1_4_S1_PB -> NCS1_2_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCS1_4_S2_PB -> NCS1_5B_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCS2_2_S1_PB -> NCS2_2_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Added safety tag mapping: NCS2_2_S2_PB -> NCS2_3A_VFD1:I.IO_0
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generating 11 rungs
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 1: XIC(Local:5:I.Data.0)OTE(MCM06);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 2: XIC(NCP1_10A_VFD1:I.IO_0)OTE(NCP1_9_S1_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 3: XIC(NCP1_10B_VFD1:I.IO_0)OTE(NCP1_9_S2_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 4: XIC(NCP1_14C_VFD1:I.IO_0)OTE(NCP1_15_S1_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 5: XIC(NCP1_14B_VFD1:I.IO_0)OTE(NCP1_15_S2_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 6: XIC(NCP1_19_VFD1:I.IO_0)OTE(NCP1_21_S1_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 7: XIC(NCP1_18B_VFD1:I.IO_0)OTE(NCP1_21_S2_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 8: XIC(NCS1_2_VFD1:I.IO_0)OTE(NCS1_4_S1_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 9: XIC(NCS1_5B_VFD1:I.IO_0)OTE(NCS1_4_S2_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 10: XIC(NCS2_2_VFD1:I.IO_0)OTE(NCS2_2_S1_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generated rung 11: XIC(NCS2_3A_VFD1:I.IO_0)OTE(NCS2_2_S2_PB);
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Safety tag map: Generated 11 total rungs
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: safety_tag_map
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_jr_pb
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_jr_pb
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_s_pb
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_s_pb
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Plugin station_ss_pb cannot generate with current data
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: station_epc
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: station_epc
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: jpe
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: jpe
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: pmm
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: pmm
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Plugin cb_monitor cannot generate with current data
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: belt_tracking
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: belt_tracking
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Generating routine: main_routine
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Generating MainRoutine with JSR calls
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated MainRoutine
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully generated routine: main_routine
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Main routine generation results: {'mcm': True, 'rack': True, 'dpm': True, 'fiom': True, 'apf': True, 'flow_ctrl': True, 'estop_check': True, 'encoder': True, 'safety_tag_map': True, 'station_jr_pb': True, 'station_s_pb': True, 'station_ss_pb': False, 'station_epc': True, 'jpe': True, 'pmm': True, 'cb_monitor': False, 'belt_tracking': True, 'main_routine': True}
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] Routines created (16): MainRoutine, R010_MCM, R011_RACK, R020_DPM, R030_FIOM, R040_APF, R050_FLOW_CTRL, R060_PMM, R080_ENCODER, R090_STATION_JR_PB, R095_STATION_S_PB, R097_STATION_EPC, R100_JPE, R120_ESTOP_CHECK, R130_SAFETY_TAG_MAP, ZZZ_BeltTracking
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R010_MCM: 2 rungs | example: NOP();
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R011_RACK: 2 rungs | example: NOP();
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R020_DPM: 8 rungs | example: NOP();
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R030_FIOM: 43 rungs | example: NOP();
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R040_APF: 37 rungs | example: NOP();
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R050_FLOW_CTRL: 26 rungs | example: XIC(NCP1_11_VFD1.CTRL.STS.Enabled)OTE(NCP1_9_VFD1.CTRL.CMD.Interlock);
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R120_ESTOP_CHECK: 16 rungs | example: [XIO(NCP1_9_VFD1:SI.In00Data) ,XIO(NCP1_9_VFD1:SI.In01Data) ]XIO(NCP1_9_VFD1:SO.STOOutput)XIO(NCP1_10A_VFD1:SO.STOOutput)XIO(NCP1_10B_VFD1:SO.STOOutput)XIO(N...
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R080_ENCODER: 18 rungs | example: AOI_ENCODER(NCP1_13_ENCODER.AOI,NCP1_13_ENCODER.HMI,NCP1_13_ENCODER.CTRL,NCP1_13_VFD1.CTRL,NCP1_12_VFD1.CTRL,NO_DOWNSTREAM,NCP1_13_VFD1:I.In_1,NCP1_13_VFD1:I...
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R130_SAFETY_TAG_MAP: 12 rungs | example: XIC(Local:5:I.Data.0)OTE(MCM_S_PB);
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R090_STATION_JR_PB: 6 rungs | example: AOI_STATION_JR_PB(NCP1_16_JR1_PB.AOI,NCP1_16_JR1_PB.HMI,NCP1_16_JR1_PB.CTRL,NO_PARTNER,NCP1_16_VFD1:I.IO_0,NCP1_16_VFD1:O.IO_1)MOVE(NCP1_16_JR1_PB.CTRL.STS.L...
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R095_STATION_S_PB: 10 rungs | example: AOI_STATION_S_PB(NCP1_15_S1_PB_STATION.AOI,NCP1_15_S1_PB_STATION.HMI,NCP1_15_S1_PB_STATION.CTRL,NCP1_15_VFD1.CTRL,NCP1_14C_VFD1:I.IO_0,NCP1_14C_VFD1:O.IO_1);
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R097_STATION_EPC: 14 rungs | example: AOI_STATION_EPC(NCP1_15_EPC1_STATION.AOI,MCM.CTRL,NCP1_15_EPC1_STATION.HMI,NCP1_15_S2_PB_STATION.CTRL,NCP1_15_VFD1:I.ConnectionFaulted,NCP1_15_VFD1:SI.In00Da...
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R100_JPE: 27 rungs | example: AOI_JPE(NCP1_12_TPE1.AOI,NCP1_12_TPE1.HMI,NCP1_12_TPE1.CTRL,NCP1_12_VFD1.CTRL,?,NCP1_12_VFD1:I.ConnectionFaulted,NCP1_12_VFD1:I.In_2,YES,?);
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - R060_PMM: 2 rungs | example: NOP();
[17:00:45] [INFO] [logging_config.py:126:_log_with_context] - ZZZ_BeltTracking: 39 rungs | example: NOP();
[17:00:45] [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(R040_APF,0) ,JSR(R050_FLOW_CTRL,0) ,JSR(R120_ESTOP_CHECK,0) ,JSR(R080_ENCODER,0) ,...
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Successfully completed ModernMainProgramGenerator generation
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Written ModernMainProgramGenerator to MainProgram_Generated.L5X
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] MainProgram written to MainProgram_Generated.L5X
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] Generating safety tag mapping...
[17:00:45] [DEBUG] [logging_config.py:128:_log_with_context] Creating MappingWriter wrapper
[17:00:45] [DEBUG] [logging_config.py:126:_log_with_context] Creating DataLoader instance
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] [SUCCESS] Safety tag mapping written to SafetyTagMapping.txt
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] - Safety tags: 11
[17:00:45] [INFO] [logging_config.py:128:_log_with_context] === All artifacts generated successfully! ===
{"level": "INFO", "message": "Routine generation completed successfully", "timestamp": "2025-08-25T17:00:45.424834", "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: MTN6_MCM06
- Excel: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/PLC Data Generator/DESC_IP_MERGED.xlsx
- Boilerplate: MTN6_boilerplate
- Mode: Single file
--------------------------------------------------
Created 32 FIOH modules based on TERM analysis
Found 42 IOLM modules
Found 168 Solenoid modules
Found 36 APF modules
Found 7 DPM modules
Found 1 PMM modules
WARNING: 2 unknown modules found
1. S2_1_VFD1 - 25B-D043N114 (11.200.1.115)
2. S2_2_VFD1 - 25B-D043N114 (11.200.1.137)
Created 42 IOLM modules with boilerplate selection:
NCP1_20_FIO1 (FIO D2CMaster): Using variant boilerplate D2CMaster_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/D2CMaster_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/D2CMaster_Module.L5X
PDP08_FIO1 (FIO PDP_FIO): Using variant boilerplate PDP_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/PDP_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/PDP_FIO_Module.L5X
S02_1_FIO1 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO10 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO11 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO12 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO13 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO14 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO15 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO16 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO17 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO18 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO19 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_1_FIO2 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO20 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO3 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO4 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO5 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO6 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO7 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO8 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_1_FIO9 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO1 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO10 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO11 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO12 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO13 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO14 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO15 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO16 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO17 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO18 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO19 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
S02_2_FIO2 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO20 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO3 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO4 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO5 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO6 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO7 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO8 (FIO Sorter): Using variant boilerplate Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOM_Module.L5X
S02_2_FIO9 (FIO Sorter_Solenoid): Using variant boilerplate Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_Solenoid_FIO_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_7_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_5_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/APF_Module_2_HP.L5X
Successfully loaded boilerplate: MTN6_boilerplate/PMM_Module.L5X
S02_1_FIO1H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO1H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO2H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO2H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO3H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO3H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO4H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO4H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO5H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO5H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO6H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO6H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO7H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO7H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO8H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_1_FIO8H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO1H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO1H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO2H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO2H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO3H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO3H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO4H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO4H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO5H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO5H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO6H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO6H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO7H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO7H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO8H1 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
S02_2_FIO8H2 (FIOH Sorter): Using variant boilerplate Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/Sorter_FIOH_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/SLOT5_IB16_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/SLOT7_IB16S_Module.L5X
Successfully loaded boilerplate: MTN6_boilerplate/SLOT6_OB16E_Module.L5X
Importing AOIs/DataTypes from base: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/IO Tree Configuration Generator/BaseProgram.L5X
Programs already exist (2 programs found), skipping empty program creation
OK: Generated project: generated_projects/MTN6_MCM06.L5X
Single file generation complete
- ['generated_projects/MTN6_MCM06.L5X']
=== Step 4: L5X2ACD Compiler output ===
🚀 Setting up compilation for project: MTN6_MCM06
📂 Compilation directory: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/L5X2ACD Compiler
📄 Source L5X: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/IO Tree Configuration Generator/generated_projects/MTN6_MCM06.L5X
🔧 Mode: wipe_existing=False, replace_mode=True
🔄 Using SMART REPLACE mode - keeping current project files
🧹 Cleaning old project files...
⚪ Keeping current project file: compile_MTN6_MCM06.bat
⚪ Keeping current project file: MTN6_MCM06.ACD
⚪ Keeping current project file: MTN6_MCM06.L5X
🧹 Cleanup complete: 0 files removed, 3 current files kept, 0 directories removed
📁 Copying L5X file: MTN6_MCM06.L5X → MTN6_MCM06.L5X
✓ Copied successfully (4.28 MB)
🔧 Batch file exists: compile_MTN6_MCM06.bat
✅ Compilation setup complete!
L5X File: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/L5X2ACD Compiler/MTN6_MCM06.L5X
Batch File: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/L5X2ACD Compiler/compile_MTN6_MCM06.bat
🪟 To compile on Windows:
1. Run: /mnt/c/Users/ilia.gurielidze/Projects/PLC Generation/L5X2ACD Compiler/compile_MTN6_MCM06.bat
2. Or double-click: compile_MTN6_MCM06.bat