# A5 — Network Architecture

**Project:** Kingsford Hotel Bacolod — BMS
**Date:** 2026-04-28
**Status:** draft
**Sources:** A1 I/O list (744 points), A4 panel schedule (8 panels, 19 controllers), EE-24 power riser, ECE-05..ECE-15 auxiliary IDF stack, Megaworld DRC-004 BACnet/IP + MS/TP standard

## Topology

Star-and-tree backbone. Head-end at the Lower Ground IT/BOH room (per Q-011) hosts the BMS server, operator workstation, redundant LAN core switch, and head-end UPS. The core switch terminates a fibre + Cat6 backbone routed up the building's west-end service-core IDF stack (visible in ECE auxiliary layouts) to per-floor IDF edge switches. Each DDC field panel taps the floor's IDF edge switch via Cat6.

Field-side BACnet MS/TP daisy-chains run from each DDC panel out to the equipment skids in that panel's served zone (chiller plant at 2F, casino MVAC at 2M, BOH AHU/PAHU at GF/2F, Roof Deck plant, etc.). VFDs, Air Ionizers, and the chiller plant manager terminate on MS/TP.

Power-meter Modbus daisy-chains run from DDC-LG-PLANT and DDC-2F-CHILLER along the metering panel locations.

```mermaid
graph TD
    subgraph HEAD_END["Lower Ground BMS Head-End"]
        SRV["BMS Server (Siemens Desigo CC)"]
        WS["Operator Workstation"]
        UPS["Head-End UPS"]
        CORE["Core Switch + Router (BACnet/IP)"]
        SRV --- CORE
        WS --- CORE
        UPS --- CORE
    end

    subgraph TWR["Service-Core IDF Stack (West End)"]
        IDF_RD[IDF — Roof Deck]
        IDF_12[IDF — 12F]
        IDF_11[IDF — 10F-11F]
        IDF_9[IDF — 6F-9F]
        IDF_5[IDF — 5F]
        IDF_3[IDF — 3F]
        IDF_2M[IDF — 2M Casino]
        IDF_2[IDF — 2F]
        IDF_GF[IDF — GF + Mezz]
        IDF_LG[IDF — Lower Ground]
        IDF_B1[IDF — B1]
    end

    CORE --> IDF_RD
    CORE --> IDF_12
    CORE --> IDF_11
    CORE --> IDF_9
    CORE --> IDF_5
    CORE --> IDF_3
    CORE --> IDF_2M
    CORE --> IDF_2
    CORE --> IDF_GF
    CORE --> IDF_LG
    CORE --> IDF_B1

    subgraph PNLS["BMS DDC Field Panels"]
        DDC_RD[DDC-RD-PLANT]
        DDC_3F[DDC-3F]
        DDC_2M[DDC-2M-CASINO]
        DDC_CHL[DDC-2F-CHILLER]
        DDC_2BOH[DDC-2F-BOH]
        DDC_GF[DDC-GF-BOH]
        DDC_LG[DDC-LG-PLANT]
        DDC_B1[DDC-B1-BOH]
    end

    IDF_RD --> DDC_RD
    IDF_3 --> DDC_3F
    IDF_2M --> DDC_2M
    IDF_2 --> DDC_CHL
    IDF_2 --> DDC_2BOH
    IDF_GF --> DDC_GF
    IDF_LG --> DDC_LG
    IDF_B1 --> DDC_B1

    subgraph PLANT["Field — BACnet MS/TP Daisy-Chains"]
        CHL["Chillers + CHW pumps + CW pumps + headers"]
        CT["Cooling towers + CT common + CW header (RD)"]
        DOAS_RD["DOAS-RD.1/2 + PAHU-r.1/2 + RD HWL set + RD exhaust fans"]
        AHU_2BOH["AHU-B.x + AHU-PF/EL/FR2/FR3 + PAHU-B.x + 2F exhaust fans"]
        AHU_2M["DOAS-2M + AHU-2M.1/2 + Air Ionizers"]
        AHU_GF["AHU-1.1/1.2/1.3 + GF Lobby exhaust + FACP gateway"]
        BOIL["SB-1/SB-2 + LG calorifier/heat-pump/recirc + LG HWL set"]
        B1FAN["PAHU-0.1 + 16 basement exhaust fans"]
        F3["3F amenity + guestroom exhaust fans"]
    end

    DDC_CHL -.MS/TP.-> CHL
    DDC_RD -.MS/TP.-> CT
    DDC_RD -.MS/TP.-> DOAS_RD
    DDC_2BOH -.MS/TP.-> AHU_2BOH
    DDC_2M -.MS/TP.-> AHU_2M
    DDC_GF -.MS/TP.-> AHU_GF
    DDC_LG -.MS/TP.-> BOIL
    DDC_B1 -.MS/TP.-> B1FAN
    DDC_3F -.MS/TP.-> F3

    classDef headend fill:#e8f4fd,stroke:#0066a3,stroke-width:2px;
    classDef panel fill:#fff8e1,stroke:#aa7700,stroke-width:1.5px;
    classDef field fill:#f3f3f3,stroke:#555,stroke-dasharray:3 2;
    class SRV,WS,UPS,CORE headend;
    class DDC_RD,DDC_3F,DDC_2M,DDC_CHL,DDC_2BOH,DDC_GF,DDC_LG,DDC_B1 panel;
    class CHL,CT,DOAS_RD,AHU_2BOH,AHU_2M,AHU_GF,BOIL,B1FAN,F3 field;
```

## Switch / network inventory

| Element | Qty | Notes |
|---------|-----|-------|
| BMS server (Tier-1 rack server) | 1 | Lower Ground IT room; Siemens Desigo CC supervisor (per A-003 internal preferred) |
| Operator workstation | 1 | Lower Ground BMS-FOC; thin client + 32" monitor |
| Core switch (managed L3, ≥ 24-port + fibre uplink) | 1 | Lower Ground core rack |
| Edge switch (managed L2, 8-port + 1× SFP fibre uplink) | 11 | One per IDF (B1, LG, GF, 2F, 2M, 3F, 5F, 6-9F, 10-11F, 12F, RD); IDFs are part of the auxiliary-system structured cabling installed by ECE contractor — BMS taps |
| Fibre run (LC-LC OM3, riser-rated FRLS) | 1 trunk + 11 drops | Service-core riser path; aggregated total 150 m typical (per A3-cable-spec-rules `bacnet_ip_backbone_riser`) |
| Cat6 horizontal trunk to DDC panels | 8 | One Cat6 from each DDC panel to its floor's IDF edge switch |
| Head-end UPS (3 kVA online, 30-min runtime) | 1 | Hospitality-grade APC / Eaton (per A-003) |
| BMS rack (12U with PDU + cable management) | 1 | Lower Ground IT room |

## BACnet MS/TP field-bus segments

Per A3 trunk topology in `A3-cable-spec-rules.yaml` (`mstp_field_backbone`): one logical BACnet MS/TP backbone per panel, daisy-chaining the equipment skids served by that panel. Total MS/TP backbone length 250 m typical (sum across all panels).

| Segment | Anchor panel | Typical length | Equipment |
|---------|--------------|----------------|-----------|
| Chiller plant MS/TP | DDC-2F-CHILLER | 12 m × 16 instances ≈ 100-150 m field cable | Chillers, primary/secondary CHW pumps, CW pumps, headers |
| Roof-deck plant MS/TP | DDC-RD-PLANT | 15 m × 18 instances ≈ 200 m field cable | CT-1/2/3, CT common, DOAS-RD.1/2, PAHU-r.1/2, HWT-HZ, HP-HZ, RP-HZ, HWH-HZ, RD exhaust fans |
| Casino MVAC MS/TP | DDC-2M-CASINO | 18 m × 5 instances ≈ 80 m field cable | DOAS-2M, AHU-2M.1/2, Air Ionizers |
| 2F BOH MS/TP | DDC-2F-BOH | 25 m × 22 instances ≈ 500 m field cable | 2F BOH AHU/PAHU + 2F exhaust fans |
| GF BOH MS/TP | DDC-GF-BOH | 25 m × 8 instances ≈ 200 m field cable | GF AHU + GF Lobby exhaust + FACP gateway |
| Lower Ground plant MS/TP | DDC-LG-PLANT | 12 m × 13 instances ≈ 150 m field cable | Boilers + LG HWL set + power-meter Modbus drops |
| Basement MS/TP | DDC-B1-BOH | 28 m × 17 instances ≈ 470 m field cable | PAHU-0.1 + 16 basement exhaust fans |
| 3F amenity MS/TP | DDC-3F | 35 m × 12 instances ≈ 420 m field cable | 3F amenity + guestroom exhaust fans |

## Iteration log

This A5 is shipped as **Iteration 1** without rendering. The mermaid block above is for embed during proposal generation; the agent has not run `render-mermaid.py` because the deliverables generator's network-diagram step renders the same content. Logged as a deferred decision in 99-decision-log.md if the rendered output looks off.
