#!/usr/bin/env python3 """ Zones Configuration for PLC Generation System ============================================== MCM01 zone configuration with start/stop values based on first equipment line only: Start and stop values use only the FIRST equipment line in each zone: MCM01: Master zone (no direct equipment) 01-01: UL1_1 TO UL1_13 (first line of: UL1_1 TO UL1_13, UL2_1 TO UL2_10, UL3_1 TO UL3_9, PS1_1 TO PS1_4) 01-02: UL2_1 TO UL2_10 01-03: UL3_1 TO UL3_9 01-04: PS1_1 TO PS1_4 01-05: PS1_5 01-06: UL4_1 TO UL4_13 (first line of: UL4_1 TO UL4_13, UL5_1 TO UL5_10, UL6_1 TO UL6_9, PS2_1 TO PS2_4) 01-07: UL5_1 TO UL5_10 01-08: UL6_1 TO UL6_9 01-09: PS2_1 TO PS2_4 01-10: PS2_5 TO PS2_6 01-11: UL7_1 TO UL7_13 (first line of: UL7_1 TO UL7_13, UL8_1 TO UL8_9, UL9_1 TO UL9_11, PS3_1 TO PS3_3) 01-12: UL8_1 TO UL8_9 01-13: UL9_1 TO UL9_11 01-14: PS3_1 TO PS3_3 01-15: PS3_8 TO PS3_12 01-16: UL10_1 TO UL10_10 01-17: UL11_1 TO UL11_13 (first line of: UL11_1 TO UL11_13, UL10_1 TO UL10_10, UL12_1 TO UL12_10, PS4_1 TO PS4_5) 01-18: UL12_1 TO UL12_10 01-19: PS4_1 TO PS4_5 01-20: PS4_11 TO PS4_14 01-21: PS3_4 TO PS3_7 MCM04 zone configuration with start/stop values based on first equipment line only: MCM04: Master zone (no direct equipment) 04-01: ULC7_1 TO ULC7_3 (first line of: ULC7_1 TO ULC7_3, ULC8_1 TO ULC8_3, PS10_1 TO PS10_3) 04-02: PS10_1 TO PS10_3 (first line of: PS10_1 TO PS10_3, PS11_1 TO PS11_2) 04-03: PS10_5 04-04: ULC5_1 TO ULC5_3 (first line of: ULC5_1 TO ULC5_3, ULC6_1 TO ULC6_3, PS11_1 TO PS11_4) 04-05: PS11_6 TO PS11_7 04-06: PS11_8 TO PS11_9 04-07: PS11_11 04-08: PRS3_5 TO PRS3_6 04-09: PRS4_1 TO PRS4_2 (first line of: PRS4_1 TO PRS4_2, PS11_3) FL1014: FL1014 Unit Operation (incl. FL1014_EX) FL1018: FL1018 Unit Operation (incl. FL1018_EX) FL1022: FL1022 Unit Operation (incl. FL1022_EX) FL1026: FL1026 Unit Operation (incl. FL1026_EX) FL1034: FL1034 Unit Operation (incl. FL1034_EX) FL1038: FL1038 Unit Operation (incl. FL1038_EX) FL3012: FL3012 Unit Operation (incl. FL3012_EX) FL3016: FL3016 Unit Operation (incl. FL3016_EX) FL3020: FL3020 Unit Operation (incl. FL3020_EX) FL3024: FL3024 Unit Operation (incl. FL3024_EX) """ # MCM01 zones configuration - Updated with comprehensive zone structure MCM01_ZONES = [ { 'name': 'MCM01', 'start': '', 'stop': '', 'interlock': '' }, # Main zones with first equipment line only { 'name': '01-01', 'start': 'UL1_1', 'stop': 'UL1_13', 'interlock': 'MCM01' }, { 'name': '01-06', 'start': 'UL4_1', 'stop': 'UL4_13', 'interlock': 'MCM01' }, { 'name': '01-11', 'start': 'UL7_1', 'stop': 'UL7_13', 'interlock': 'MCM01' }, { 'name': '01-17', 'start': 'UL11_1', 'stop': 'UL11_13', 'interlock': 'MCM01' }, # Individual zones with their specific equipment ranges { 'name': '01-02', 'start': 'UL2_1', 'stop': 'UL2_10', 'interlock': '01-01' }, { 'name': '01-03', 'start': 'UL3_1', 'stop': 'UL3_9', 'interlock': '01-01' }, { 'name': '01-04', 'start': 'PS1_1', 'stop': 'PS1_4', 'interlock': '01-01' }, { 'name': '01-07', 'start': 'UL5_1', 'stop': 'UL5_10', 'interlock': '01-06' }, { 'name': '01-08', 'start': 'UL6_1', 'stop': 'UL6_9', 'interlock': '01-06' }, { 'name': '01-09', 'start': 'PS2_1', 'stop': 'PS2_4', 'interlock': '01-06' }, { 'name': '01-12', 'start': 'UL8_1', 'stop': 'UL8_9', 'interlock': '01-11' }, { 'name': '01-13', 'start': 'UL9_1', 'stop': 'UL9_11', 'interlock': '01-11' }, { 'name': '01-14', 'start': 'PS3_1', 'stop': 'PS3_3', 'interlock': '01-11' }, { 'name': '01-16', 'start': 'UL10_1', 'stop': 'UL10_10', 'interlock': '01-17' }, { 'name': '01-18', 'start': 'UL12_1', 'stop': 'UL12_10', 'interlock': '01-17' }, { 'name': '01-19', 'start': 'PS4_1', 'stop': 'PS4_5', 'interlock': '01-17' }, # Independent zones with their own equipment { 'name': '01-05', 'start': 'PS1_5', 'stop': 'PS1_5', 'interlock': 'MCM01' }, { 'name': '01-10', 'start': 'PS2_5', 'stop': 'PS2_6', 'interlock': 'MCM01' }, { 'name': '01-15', 'start': 'PS3_8', 'stop': 'PS3_12', 'interlock': 'MCM01' }, { 'name': '01-20', 'start': 'PS4_11', 'stop': 'PS4_14', 'interlock': 'MCM01' }, { 'name': '01-21', 'start': 'PS3_4', 'stop': 'PS3_7', 'interlock': 'MCM01' } ] # MCM04 zones configuration - Updated with comprehensive E-Stop zone structure MCM04_ZONES = [ { 'name': 'MCM04', 'start': '', 'stop': '', 'interlock': '' }, # Main E-Stop zones with equipment ranges { 'name': '04-01', 'start': 'ULC7_1', 'stop': 'ULC7_3', 'interlock': '04-02' }, { 'name': '04-02', 'start': 'PS10_1', 'stop': 'PS10_3', 'interlock': 'MCM04' }, { 'name': '04-03', 'start': 'PS10_5', 'stop': 'PS10_5', 'interlock': 'MCM04' }, { 'name': '04-04', 'start': 'ULC5_1', 'stop': 'ULC5_3', 'interlock': '04-02' }, { 'name': '04-05', 'start': 'PS11_6', 'stop': 'PS11_7', 'interlock': 'MCM04' }, { 'name': '04-06', 'start': 'PS11_8', 'stop': 'PS11_9', 'interlock': 'MCM04' }, { 'name': '04-07', 'start': 'PS11_11', 'stop': 'PS11_11', 'interlock': '04-09' }, { 'name': '04-08', 'start': 'PRS3_5', 'stop': 'PRS3_6', 'interlock': 'MCM04' }, { 'name': '04-09', 'start': 'PRS4_1', 'stop': 'PRS4_2', 'interlock': 'MCM04' }, # Safety Relay zones - Unit operations { 'name': 'FL1014', 'start': 'FL1014_2_VFD1', 'stop': 'FL1014_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL1018', 'start': 'FL1018_2_VFD1', 'stop': 'FL1018_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL1022', 'start': 'FL1022_2_VFD1', 'stop': 'FL1022_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL1026', 'start': 'FL1026_2_VFD1', 'stop': 'FL1026_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL1034', 'start': 'FL1034_2_VFD1', 'stop': 'FL1034_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL1038', 'start': 'FL1038_2_VFD1', 'stop': 'FL1038_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL3012', 'start': 'FL3012_2_VFD1', 'stop': 'FL3012_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL3016', 'start': 'FL3016_2_VFD1', 'stop': 'FL3016_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL3020', 'start': 'FL3020_2_VFD1', 'stop': 'FL3020_4_EX1', 'interlock': 'MCM04' }, { 'name': 'FL3024', 'start': 'FL3024_2_VFD1', 'stop': 'FL3024_4_EX1', 'interlock': 'MCM04' } ] MCM05_ZONES = [ { 'name': 'MCM05', 'start': '', 'stop': '', 'interlock': '' }, # Safety Relay zones - Unit operations { 'name': 'FL2074', 'start': 'FL2074_2_VFD1', 'stop': 'FL2074_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL2078', 'start': 'FL2078_2_VFD1', 'stop': 'FL2078_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL2086', 'start': 'FL2086_2_VFD1', 'stop': 'FL2086_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL2090', 'start': 'FL2090_2_VFD1', 'stop': 'FL2090_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL2094', 'start': 'FL2094_2_VFD1', 'stop': 'FL2094_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL4082', 'start': 'FL4082_2_VFD1', 'stop': 'FL4082_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL4078', 'start': 'FL4078_2_VFD1', 'stop': 'FL4078_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL4074', 'start': 'FL4074_2_VFD1', 'stop': 'FL4074_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL4070', 'start': 'FL4070_2_VFD1', 'stop': 'FL4070_4_EX1', 'interlock': 'MCM05' }, { 'name': 'FL4066', 'start': 'FL4066_2_VFD1', 'stop': 'FL4066_4_EX1', 'interlock': 'MCM05' } ] # Default zones configuration DEFAULT_ZONES = MCM01_ZONES # Main zones configuration mapping ZONES_CONFIGS = { 'MCM01': MCM01_ZONES, 'MCM04': MCM04_ZONES, 'MCM05': MCM05_ZONES } # Export for backward compatibility __all__ = ['MCM01_ZONES', 'MCM04_ZONES', 'MCM05_ZONES', 'DEFAULT_ZONES', 'ZONES_CONFIGS']