BACnet MS/TP Segment Loading and Token Loop Time

How long a BACnet MS/TP segment takes to pass its token around, which is the worst-case response to any command on it.

Run the calculator

Example

You enter

You get

Details, formula, and sources

THE TOKEN IS A SERIALISING MECHANISM AND EVERYTHING FOLLOWS FROM THAT. Only one device transmits at a time, so the bus's total throughput is FIXED and adding devices divides it rather than expanding it. A segment is not a network where more nodes means more capacity; it is a queue, and every device added lengthens the wait for every other one. THE 127 MASTER ADDRESSES THE PROTOCOL PERMITS ARE A NAMING LIMIT, NOT A CAPACITY, and reading them as a design allowance is where segments go wrong. A segment carrying anything near that many devices has a token rotation measured in the high hundreds of milliseconds before any useful traffic at all, which makes coordinated control across the segment sluggish and anything resembling real-time interlocking unworkable. Roughly thirty-two devices at 76,800 baud is a common design limit, and the figure this computes is what that limit is protecting. WHAT THE NUMBER IS FOR IS A JUDGEMENT, NOT A PASS OR FAIL. A loop time of a hundred and fifty milliseconds is entirely adequate for scheduled and reset sequences and entirely inadequate for a safety interlock or a coordinated shutdown, and the same segment can be correct for one and wrong for the other. Computing it lets that be decided rather than discovered. BAUD RATE AND CABLE LENGTH TRADE AGAINST EACH OTHER, WHICH CAPS THE EASY REMEDY. Raising the rate shortens every frame proportionally and is the first thing to try, but the maximum cable length falls as the rate rises and the bus becomes far less tolerant of poor wiring, stubs, missing termination and grounding problems. On a long existing run the higher rate simply will not work, and the answer is another segment and another router port rather than a faster setting. This is a timing estimate for planning and a simplified model of the MS/TP master node state machine. The real rotation depends on Nmax_master and how the token skips absent addresses, on Nmax_info_frames and how many frames a device may send per token, on the timeouts that govern token recovery when a device drops, and on the poll-for-master cycle that discovers new devices -- and token loss and recovery, not steady-state rotation, is what makes a marginal segment behave badly. Frame lengths vary with the service and the data: a segment carrying trend uploads or a firmware download behaves nothing like one carrying present-value polls. It does not address the physical layer, which is where most MS/TP problems actually live -- cable type and length limits at each baud rate, termination and biasing, stub length, shield grounding, and ground potential differences between buildings. It does not design the network architecture, size routers or the IP backbone, or address MAC address assignment. ASHRAE Standard 135 and the controller manufacturers' documentation, the applicable cable length limits for the baud rate, and the controls engineer govern.

token frame = octets x 10 / baud; turnaround = bit times / baud; idle rotation = devices x (token frame + turnaround); data = transmitting devices x (frame octets x 10 / baud); loop time = idle rotation + data, and the worst-case response is one full rotation.

A simplified model of the BACnet MS/TP master node state machine. ASHRAE Standard 135 and the controller manufacturers' documentation govern the real behaviour.

Frame timing arithmetic.

Estimate. AHJ and licensed professional govern.

Field names used by the API: baud, device_count, token_octets, turnaround_bits, frame_octets, transmitting_share, alt_device_count, alt_baud, token_frame_ms, turnaround_ms, per_device_ms, idle_rotation_ms, frame_time_ms, data_ms, loop_time_ms, alt_devices_loop_ms, alt_devices_ratio, alt_baud_loop_ms

Related tools