Overview
This case study describes a common retrofit pattern: legacy field equipment remained in service, while a modern BMS required normalized BACnet objects for supervision and alarms.
The implementation used a QuickServer gateway to aggregate source data and expose a clean BACnet object model to the supervisory layer.
Project Context
Integration Goal
- Maintain existing field devices and wiring
- Minimize BMS-side remapping effort
- Deliver stable BACnet discovery and predictable object behavior
Source and Destination Protocols
| Layer | Protocol | Role |
|---|---|---|
| Source 1 | Modbus | Meter and controller telemetry |
| Source 2 | EtherNet/IP | PLC-originated status and command points |
| Destination | BACnet/IP | Supervisory BMS ingestion |
Architecture
The final architecture used one gateway exposure strategy instead of direct multi-vendor BACnet exposure. This reduced profile mismatch risk and simplified BMS engineering.
- Poll source points from Modbus and EtherNet/IP devices.
- Normalize scaling, state mapping, and writable command behavior.
- Publish a single BACnet device instance with grouped object instance ranges.
- Validate against BMS trends, alarms, and command pathways.
Technical Constraints
| Constraint | Risk | Mitigation |
|---|---|---|
| Mixed data typing across source protocols | Incorrect engineering values in BMS | Explicit scale and type conversion rules per point class |
| Existing BMS point naming conventions | Operator confusion and delayed acceptance | Preserve naming pattern and object grouping |
| Routed network segments | Discovery failure without broadcast handling | BBMD-aware BACnet/IP design and firewall policy checks |
| Limited commissioning window | Incomplete validation at handoff | Predefined validation checklist and rollback plan |
Implementation Sequence
1. Intake and Point Map Baseline
- Collected source register/tag definitions and update cadence expectations.
- Tagged every point as read-only telemetry or write-enabled command.
- Assigned BACnet object types from the final BMS point list.
2. Gateway Configuration
- Built object instance ranges by subsystem to keep browsing deterministic.
- Implemented scale factors and enum mapping before functional testing.
- Reserved address blocks for future points to prevent renumbering later.
3. Discovery and Communications Validation
- Confirmed [Who-Is/I-Am] behavior using CAS BACnet Explorer.
- Verified BMS adapter/subnet selection against production network path.
- Captured packet traces for baseline and post-cutover comparison.
4. End-to-End Functional Tests
- Compared source values and BACnet object values under steady-state load.
- Executed safe write tests for command points and observed source-side effect.
- Simulated partial source outages and confirmed alarm/state behavior.
Commissioning Outcomes
| Outcome | Result |
|---|---|
| Discovery stability | Stable after BBMD-aware network alignment |
| Data quality | Within expected scaling and latency ranges |
| Operator usability | Improved due to consistent object naming and grouping |
| Expansion readiness | Reserved object ranges enabled future additions without BMS redesign |
Lessons Learned
- Design object instance ranges before mapping starts, not during troubleshooting.
- Validate with the production supervisory platform, not only engineering tools.
- Keep protocol conversion concerns separate from network segmentation concerns.
- Document all scale and enum assumptions in commissioning artifacts.
Related Articles
- BACnet
- Modbus to BACnet Protocol Conversion Guide
- BACnet Discovery & Network Architecture Reference
- Troubleshooting Guide for BACnet MS/TP Networks
Chipkin Tools
- QuickServer - protocol gateway for normalization and BACnet exposure
- CAS BACnet Explorer - discovery and protocol-level BACnet diagnostics
- Chipkin Support - integration design and commissioning support