BACnet MS/TP token passing · Bus utilization · Token rotation & backlog
This simulator models bus utilization and token rotation time for a BACnet MS/TP network under varying polling loads, showing engineers exactly when a segment becomes overloaded and polls begin to back up. It is used during network design and commissioning to size segments and set polling rates.
Bus capacity in octets per second equals baud / 11 (since each octet requires 11 bit-times: 8 data + start + stop + parity). Offered traffic is the sum of data frame octets and token frame octets for all devices polling at the configured rate: offered = devices × polling × (frameOctets + tokenOctets). Utilization (%) = offered / busCapacity × 100.
When utilization exceeds 100%, the bus is saturated: offered traffic exceeds what the physical medium can carry in real time, so polls queue and are serviced late or dropped. The backlog metric shows how many polls per second cannot be accommodated. Token rotation time grows proportionally with device count and is calculated as devices × (frameTime + tokenPassTime) in milliseconds.
ASHRAE 135 Clause 9 governs MS/TP token passing, frame sizes, and timing parameters. The standard defines bus capacity as a function of baud rate and allows baud rates from 9600 to 115200 bps. EIA/TIA-485 governs the physical RS-485 layer with a 32 unit-load limit per segment and 1200 m maximum cable length. ASHRAE recommends operating below 80% bus utilization to preserve headroom for burst traffic during alarm conditions, which can multiply traffic 3–5x briefly.
COV (Change of Value) subscriptions dramatically reduce polling overhead: instead of reading every point every scan cycle, the controller only receives unsolicited updates when a value changes. This is the primary tool to reduce bus utilization on high-density networks. For segments with many fast-changing analog inputs, polling at 1 Hz quickly saturates a 9600-baud bus; raising baud to 38400 or 76800 is often the most practical fix. Monitor token rotation time during commissioning — values above 500 ms indicate an overloaded trunk that will show sluggish response in DDC control loops.
Use the sliders to set the number of MS/TP devices, baud rate, polling rate per device, and average APDU payload size. The status banner updates instantly to show whether the bus is healthy (below 60%), loaded (60–90%), or saturated (above 90%). The utilization curve plots bus load versus polling rate so you can find the maximum sustainable poll rate for your configuration. Aim for the yellow marker (your current rate) to fall in the green region of the curve.
When offered traffic exceeds bus capacity, the token rotation time grows beyond the expected period. Polls are queued and serviced late; in severe cases the BACnet stack may drop pending requests. This appears as sluggish trend data, missed alarms, and supervisory communication timeouts.
With polling, every point is read every scan cycle regardless of whether it changed. With COV subscriptions, the device sends an unsolicited notification only when the value changes by more than the COV increment. For stable points (setpoints, binary status), COV can reduce traffic by 80–90%.
For a 20-device segment at 38400 baud polling at 1 Hz, token rotation is typically 50–150 ms. Values under 500 ms are generally acceptable for HVAC control. Above 1 second, supervisory reads become noticeably slow and PID loops fed from MS/TP sensors may show sluggish response.
EIA-485 limits each physical segment to 32 unit loads without a repeater. ASHRAE 135 allows master addresses 0–127. For performance, most projects limit segments to 16–24 devices to keep token rotation fast and leave room for future expansion.
No. All devices on an MS/TP segment must use the same baud rate. Mixing baud rates causes framing errors and communication failures. The baud rate is a physical-layer setting that must be configured identically on every device on the trunk.
Try our Smart Buildings Studio
More calculators, simulators, and guides for this discipline.