Episode 25 1:43 Low Current & ELV EN · العربية

BACnet, Modbus & the BAS backbone

BACnet, Modbus and the integration layer where the project money actually goes. The protocols are the easy part: what neither of them standardises is what a point means, and that gap is where the integration budget goes.

A building management control room with a wall of HVAC schematics and trends
Animated explainer, press play to watch the concepts now; the filmed cut publishes once production wraps.

What you'll walk away with

Four ideas to carry into the next specification conversation you have.

01

Cite the Protocol Revision, not the year.

BACnet is ANSI/ASHRAE 135, and ISO 16484-5 republishes the same text about an edition behind. What a device can do is set by its Protocol Revision: 135-2020 was PR 22, and 135-2024 plus its published addendum is PR 31. Addenda approved together share one PR, and addendum 135-2020ce kept the MS/TP letters but replaced the master-slave wording with multidrop serial bus/token passing.

02

The Modbus map is the vendor's, in the spec's own words.

Section 4.4, verbatim: "The pre-mapping between the MODBUS data model and the device application is totally vendor device specific." The specification fixes big-endian for one 16-bit item and says nothing about a 32-bit float, so word order is a question to ask, not an assumption. The 40001 everyone types appears in no current Modbus specification: it comes from Modicon PI-MBUS-300, June 1996.

03

MS/TP counts unit loads, not devices.

Since addendum 135-2016bm (June 2018) the limit is 32 unit loads per segment, and the PICS carries the transceiver's unit loading. At an eighth of a unit load the electrical budget allows up to 256 devices. Only 9600 and 38400 baud are required, and 115200 is the only rate whose recommended segment drops, to 1000 m.

04

An override at 8 beats a schedule at 9, until cleared.

Every commandable point applies the first non-NULL value of its 16 priority slots. The standard's own example puts the scheduler at 9 and a manual override at 8, so one forgotten override outranks the schedule until someone writes NULL back. Annex H makes gateways implement all 16 entries, and still lets a conforming gateway answer Result(+) before the write has reached the device.

GET THE VERSION RIGHT
Cite the Protocol Revision, not the edition year
every Protocol Revision between the two editions22232425262728293031135-2020135-2024 + addendumthe edition year alone cannot tell these apart
And the vocabulary moved: addendum 135-2020ce replaced "master-slave/token-passing" with multidrop serial bus/token passing, and Max_Master with Max_Manager. A submittal that still says master-slave was written against an older text.
WHAT BACNET DOES NOT DO
It standardises the wire, not the words
one zone temperature, three conformant namesVAV boxZN-Tconformantrooftop unitRoomTemp_3Fconformantfan coilSpaceTempconformantBrick: Zone_Air_Temperature_SensorHaystack: zone air temp sensor pointa tag model carries the meaning BACnet leaves out
Object_Name only has to be unique inside the device that holds it. The one exception is the Device object's own name, which must be unique across the internetwork.
THE MYTH THAT SIZES EVERY RISER
It is 32 unit loads, not 32 devices
1.0 UL320.5 UL640.25 UL1280.125 UL256electrical maximum per RS-485 segment, 32 UL
Addendum 135-2016bm (June 2018) changed clause 9.2.2 from 32 nodes to 32 unit loads per segment, and added a PICS field for the transceiver's unit loading. At an eighth of a unit load the electrical budget allows up to 256 devices; at a full one, 32.
THREE DOCUMENTS, ONE CLAIM
PICS, test method and certification are not the same thing
PICSthe claimnormative annex135.1the testseparate standardBTLthe certificateprivate programmenone of the three means interchangeable
So demand the PICS, and read it. It is the only document that says what this particular device will actually do.
A rooftop air handling unit and its ductwork above a city skyline at sunset

BAS backbone × the numbers to check

Per ANSI/ASHRAE 135 and its addenda, the Modbus specifications, NCA NCS-1:2020 and the Mostadam manuals. Every source is linked at the foot of the page.

Item Value What it means
BACnet identityASHRAE 135 / ISO 16484-5ISO republishes the 135 text about an edition behind. Cite the Protocol Revision
Protocol RevisionPR 22 → PR 31135-2020 was PR 22; 135-2024 plus addendum cu is PR 31. Addenda approved together share a PR
MS/TP segment limit32 unit loadsNot 32 devices (addendum bm, 2018). An eighth-unit-load transceiver allows up to 256 on the electrical budget
MS/TP required baud9600 and 38400The rest are optional. Only 115200 shortens the recommended segment, to 1000 m
Priority array16 slotsFirst non-NULL wins. The standard's example: scheduler at 9, manual override at 8
Gateway, Annex Hall 16 entriesIts one data mandate. A gateway may still answer Result(+) before the write lands
Modbus data modelvendor specificSection 4.4, verbatim. Ask for the address base, data type and word order
Modbus securityzero mentionsMODBUS/TCP Security: port 802, TLS 1.2 or better, mutual X.509v3 certificates
BACnet/SC transportTLS 1.3A WebSocket to a primary or failover hub; certificates signed by the site's CA
Saudi certificate limits20/10/5/3Maximum years, NCA NCS-1:2020 s. 5.2 via ECC 2-8-3: root, intermediate, end-user MODERATE, ADVANCED
Saudi protocol mandatenoneMostadam names no protocol. Commercial D+C: E-02 metering and PMM-01 commissioning are Keystone
WHY BUILDINGS STOP OBEYING
The priority array, and the override nobody cleared
1Manual Life SafetyNULL2Automatic Life SafetyNULL3AvailableNULL4AvailableNULL5Critical Equipment ControlNULL6Minimum On/OffNULL7AvailableNULL8Manual Operator21 °C override wins9Available24 °C schedule, outranked10AvailableNULL11AvailableNULL12AvailableNULL13AvailableNULL14AvailableNULL15AvailableNULL16AvailableNULLRelinquish_Default26 °CPresent_Value = 21 °C, from level 8illustrative setpoints
A commandable point holds 16 slots and applies the first non-NULL one from the top; Relinquish_Default applies only when all 16 are NULL. The standard's own example puts the scheduler at 9 and a manual override at 8.
WHAT A STUCK OVERRIDE COSTS
The schedule keeps writing. Nothing reads it.
21 °C24 °C28 °CSunMonTueWedThuFriSatoverride 21 °C at priority 8, never releasedschedule writes at 9value the device applies134 of 168 hours ignore the schedule, illustrative week
In this illustrative week the override arrives on Monday at 10:00 and is never released. From then on 134 of the week's 168 hours apply a value the schedule did not write, and 93 of them are nights and the weekend held at 21 °C instead of set back to 28 °C.
GATEWAYS ARE IN THE STANDARD
Annex H is normative, and most of it says should
clientgatewaythe deviceWritePropertyResult(+), at oncemay not have happened yetthe gateway can say yes before it actsthe data mandate: all 16 priority entries
One clause almost nobody specifies: since addendum 135-2012al, a gateway presenting virtual BACnet devices must supply a second, separate PICS covering those virtual devices. One line in a submittal schedule.
MODBUS, HONESTLY
The standard says the mapping is vendor specific
holdingone-based40001400024000340004on the wire0123extendedzero-based600000600001600002600003the off-by-one is in PI-MBUS-300 (1996)
Section 4.4, verbatim: "The pre-mapping between the MODBUS data model and the device application is totally vendor device specific." One sentence from the specification explains every register-map argument you have ever had.
THE DATA MODEL, AND WHAT IT LEAVES OUT
Four tables, 16-bit words, and no rule for a float
primary tableobject typeaccess1996 refDiscrete InputsSingle bitRead-Only1xxxxCoilsSingle bitRead-Write0xxxxInput Registers16-bit wordRead-Only3xxxxHolding Registers16-bit wordRead-Write4xxxxone 32-bit float, two holding registersABCD0x41AC0x0000= 21.5CDAB0x00000x41AC= 2.4e-41same wire, two readings: ask for the word order
Section 4.2 fixes big-endian for one 16-bit item and stops there. "Float", "IEEE" and "32-bit" appear nowhere in the specification, so the same two holding registers read 21.5 in one word order and 2.4e-41 in the other.
A field controller on a DIN rail, a twisted-pair bus on its terminals and an end-of-line resistor fitted

Why BAS integration fails quietly

Five corrections worth carrying into the next specification.

The wire is standard. The words are not.

An Object_Name only has to be unique inside the device that holds it; the one exception is the Device object's own name, which must be unique across the internetwork. There is no naming convention and no controlled vocabulary, so three vendors can name one zone temperature three ways and all three conform. That is the gap Project Haystack and the Brick Schema close. ASHRAE 223P, now titled "Semantic Data Model for Analytics and Automation Applications in Buildings", is still not published: its first formal public review ran in mid-2025 and a second from April to June 2026, so do not print a publication year for it.

Modbus has no security to weaken.

The words "security", "authentication" and "encryption" appear exactly zero times in the 50-page Modbus Application Protocol Specification. A secure version exists and almost nobody specifies it: MODBUS/TCP Security on port 802, TLS 1.2 or better with mutual X.509v3 certificates, first published in July 2018 and now at v36 (2021). Modbus TCP is profile CP 15/1 in IEC 61784, while the serial line has no IEC profile, and the Modbus Organization's tested-devices page lists two companies, so a "Modbus certified" claim should name what was tested.

BACnet deleted its security clause, then rebuilt it around the owner.

ASHRAE deleted Clause 24, Network Security, with addendum 135-2016by in November 2019, because it had "very limited industry acceptance". BACnet/SC was approved the same day: each node holds one live WebSocket connection over TLS 1.3 to a primary or failover hub, and every certificate is signed by a CA the site controls, in the standard's words "The signing CA shall be controlled by the site." The standard sets no certificate lifetime and no renewal interval. In Saudi Arabia the NCA's National Cryptographic Standards (NCS-1:2020), binding through ECC control 2-8-3, cap certificate validity instead: root CA at most 20 years, intermediate at most 10, end-user at most 5 at the MODERATE level and 3 at ADVANCED.

Gateways are normative, and mostly "should".

Annex H is normative, and its one mandate about data is that "Gateways are required to implement Priority_Array properties correctly with all 16 entries." Its other hard rules are about timing and silence, such as aborting a request that overruns APDU_Timeout. The rest is a local matter: a conforming gateway may return Result(+) to a write it has not yet performed, and may read back the value you wrote instead of the value in the device. Since addendum 135-2012al, a gateway presenting virtual BACnet devices must also supply a second PICS for them.

Saudi Arabia mandates data, and a named person.

The four Mostadam manuals run to 878 pages and never name BACnet, Modbus, KNX, DALI, LonWorks or MQTT, although they do name building management systems. The commercial Design + Construction manual makes E-02 Energy Metering and PMM-01 Systems Commissioning Keystone credits, required whatever rating is targeted, with sub-meters covering at least 90% of energy demand; its guidance says meters should feed a system "capable of being remotely connected to Sustainable Building". The residential manual makes metering a keystone only from Silver, and the code's metering rules sit in SBC 1001 section 603. The named person is the Commissioning Agent under PMM-01: at least five years of commissioning experience, reporting directly to the owner, not the contractor's employee, and appointed before the design-phase commissioning review starts.

THE WORD THAT APPEARS ZERO TIMES
Modbus has no security, not weak security
in the 50-page Modbus specification0security0authentication0encryptionno security, not weak securityMODBUS/TCP Security: TLS on port 802
"Security", "authentication" and "encryption" appear exactly zero times in the 50-page Modbus Application Protocol Specification.
SECURITY, WITH THE RECEIPTS
BACnet had security and the industry threw it away
maximum certificate validity, NCA NCS-1:2020 section 5.2root CA20 yearsintermediate CA10 yearsend user, MODERATE5 yearsend user, ADVANCED3 yearsASHRAE sets none of these lifetimes
In Saudi Arabia that authority has a regulator. The NCA's National Cryptographic Standards, made binding by ECC control 2-8-3, set validity limits the ASHRAE standard does not: root CA at most 20 years, intermediate at most 10, end-user at most 5 at the MODERATE level and 3 at ADVANCED.
WHAT BACNET/SC ACTUALLY BUILDS
Every device dials out to a hub
site CAsigns every certificateprimary hubfailover hubhead endcontrollergatewaylighting panellive link solid, failover dashed, TLS 1.3the site runs the CA, so the site renews the keys
BACnet/SC replaces broadcast with connections. Each node holds one live connection, to the primary hub or the failover hub, as a WebSocket over TLS 1.3, and both ends present certificates signed directly by a CA the site configured.
USE THE RIGHT INCIDENT
Two real building-automation attacks, and one myth
KNXlocka security feature turnedagainst the ownerciteFrostyGoopthe assets were notadequately segmentedciteTargetfor billing, not buildingcontrolmythcite the incident, not the anecdote
And the sentence to quote at anyone who says the network is isolated: NSA and CISA assessment teams "have often gained access to OT networks, despite prior assurance that the networks were fully air gapped".
THE SAUDI POSITION
The four Mostadam manuals reviewed specify data, not a protocol
Mostadam, 878 pages across 4 manuals0 occurrencesBMS yes, protocol noBACnetModbusKNXDALILonWorksMQTTKeystone, Commercial D+CE-02 Energy MeteringPMM-01 Commissioningsub-meters ≥ 90% of demandremote link: guidance only4 manuals reviewed: metering, commissioning, no protocol
878 pages across the four Mostadam manuals reviewed, and not one occurrence of BACnet, Modbus, KNX, DALI, LonWorks or MQTT. They specify metering and commissioning requirements and name building management systems, but never a BAS protocol.
Write this into the specification

The clause to write

Seven lines, each naming a document, a quantity or a date. None of them can be answered with a brochure, which is the only test a specification clause has to pass.

design-phaseCx reviewCxA alreadyappointedhandoverpriority-arrayreportend of defectspriority-arrayreporteach artefact has a date, not just a name

a. Each BACnet device: a PICS stating its Protocol Revision as a number and its transceiver unit loading.

b. Each gateway presenting virtual devices: a second PICS for them.

c. Each MS/TP segment: unit loads summing to 32 or fewer.

d. Each Modbus device: a register map giving address base, data type and word order.

e. At handover and at the end of the defects period: every non-NULL priority slot, with its reason.

f. If BACnet/SC: the site CA and its renewal procedure, within NCA NCS-1:2020 limits, in the O&M manual.

g. A Commissioning Agent with at least five years' experience, reporting to the owner, appointed before the design-phase commissioning review (Mostadam PMM-01).

Line e is the one nobody writes, and it is the only one that finds an override nobody cleared.

Next Episode

PoE: Type 1, 2, 3, 4

Watch next

Get the next episode by email

Practical lighting know-how from NLC Academy. No spam, unsubscribe anytime.

By subscribing you agree to receive NLC emails.

Sources & further reading

The standards, specifications and reports behind every number on this page.

Forward the carousel to a colleague

An 18-slide explainer, ready to post straight to LinkedIn as an image carousel.