PLC_Generation/zones_config.py
2025-08-05 14:38:54 +04:00

402 lines
9.3 KiB
Python

#!/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']