As buildings modernize their IT infrastructure and adopt IP-based systems, migrating BACnet MS/TP trunks to BACnet/IP becomes necessary. This guide covers the planning, design, and execution of a successful migration.
| Factor | MS/TP | BACnet/IP |
|---|---|---|
| Speed | 9.6-76.8 kbps | 10/100 Mbps+ |
| Distance | 1200m (4000ft) max trunk | Unlimited (switched network) |
| Devices per segment | 127 max (32 practical) | Limited by bandwidth |
| Wiring | Shielded twisted pair | Cat5e/Cat6 (shared with IT) |
| Troubleshooting | Oscilloscope, segment isolation | Standard IT network tools |
| Cloud ready | No | Yes |
Separate BAS traffic from general IT traffic:
VLAN Architecture:
VLAN 10: Building Management (BACnet/IP devices)
VLAN 20: Building Supervision (supervisors, workstations)
VLAN 30: IT Corporate (general office traffic)
VLAN 40: Security Systems (cameras, access control)
Inter-VLAN Routing:
VLAN 10 ←→ VLAN 20: Allowed (management access)
VLAN 10 ←→ VLAN 30: Denied (security boundary)
Design a scalable addressing scheme:
Subnet Layout:
10.10.1.0/24 - Building 1 Controllers (Floor 1)
10.10.2.0/24 - Building 1 Controllers (Floor 2)
10.10.3.0/24 - Building 1 Controllers (Floor 3)
10.10.10.0/24 - Building 1 Supervisors
10.10.20.0/24 - Building 2 Controllers
10.10.100.0/24 - Management Workstations
Reserved Ranges:
.1-.10 : Infrastructure (switches, routers)
.11-.50 : Supervisors, servers
.51-.250 : Controllers
.251-.254: Reserved
BBMDs forward BACnet broadcasts between subnets:
BBMD Table (each BBMD needs all peers):
BBMD 1: 10.10.1.1 (Building 1, Floor 1)
BBMD 2: 10.10.2.1 (Building 1, Floor 2)
BBMD 3: 10.10.20.1 (Building 2)
Each BBMD Broadcast Distribution Table:
Entry 1: 10.10.1.1 / 255.255.255.255
Entry 2: 10.10.2.1 / 255.255.255.255
Entry 3: 10.10.20.1 / 255.255.255.255
| Feature | Evaluate |
|---|---|
| MS/TP device capacity | How many devices per trunk? |
| Baud rate support | 9600, 19200, 38400, 76800? |
| Routing table size | How many networks? |
| Management interface | Web-based? SNMP? |
| Power | PoE vs. external? |
Week 1-2:
- Install managed switches on each floor
- Configure VLANs and inter-VLAN routing
- Deploy IP backbone cabling
- Assign IP addresses to documentation
- Configure BBMDs
Per-Trunk Procedure:
1. Document existing MS/TP trunk (devices, addresses, baud rate)
2. Install BACnet/IP to MS/TP router at trunk head-end
3. Connect router to IP network and MS/TP trunk
4. Configure router (network number, baud rate, MAC addresses)
5. Verify all devices communicate through router
6. Update supervisor/front-end device routing tables
7. Test alarms, trends, commands, schedules
8. Monitor for 48-72 hours before proceeding to next trunk
When replacing MS/TP controllers with native IP controllers:
1. Back up controller programming
2. Install new IP controller
3. Configure IP settings (address, subnet, gateway)
4. Load and verify programming
5. Commission I/O points
6. Remove old controller from MS/TP trunk
7. Update documentation
After all devices are migrated:
1. Remove MS/TP wiring (or leave in place as backup)
2. Remove standalone routers (if controllers have native IP)
3. Update as-built documentation
4. Archive old MS/TP configuration
For each migrated device:
[ ] Device responds to Who-Is
[ ] All points read correctly
[ ] Writable points accept commands
[ ] COV subscriptions function
[ ] Alarms generate and route properly
[ ] Trends collect data
[ ] Schedules execute correctly
[ ] Priority array commands work
| Pitfall | Prevention |
|---|---|
| Duplicate device instance IDs | Audit all device IDs before migration |
| BBMD misconfiguration | Test broadcast forwarding between all subnets |
| Broadcast storms | Use managed switches with storm control |
| Wrong baud rate on router | Match existing trunk baud rate exactly |
| Network number conflicts | Plan network numbers across entire site |
| Missing routing entries | Update all supervisors and routers |
A well-planned migration happens one trunk at a time with zero disruption to building operations. The key is thorough documentation before you disconnect the first wire.