BACnet Object Identifier Calculator
Use this BACnet Object Identifier Calculator to encode a BACnet object type and object instance into the packed 32-bit Object Identifier, or decode an existing hexadecimal or decimal identifier into its 10-bit Object Type and 22-bit Instance Number.
4194303
(0x3FFFFF) is the special unspecified / wildcard instance value.
-
-
What Is a BACnet Object Identifier Calculator?
A BACnet Object Identifier Calculator converts a BACnet object type and instance number into the compact 32-bit identifier used by BACnet application services and object properties.
Every BACnet object is identified by a combination of its object type and object instance. The type describes what kind of object it is, such as an Analog Input, Binary Output, Device or Schedule, while the instance identifies a particular object of that type.
This calculator can encode those two fields into one unsigned 32-bit value or perform the reverse operation and decode a raw identifier.
BACnet Object Identifier Bit Layout
The BACnet Object Identifier contains exactly 32 bits divided into two fields.
The 10-bit type field can numerically represent values from 0 through 1023, while the 22-bit instance field can represent values from 0 through 4194303.
BACnet Object Identifier Formula
The mask 0x3FFFFF contains the lower 22 bits and therefore
extracts the instance field.
BACnet Object Identifier Example
Suppose a BACnet Device object has instance number 1234.
Therefore the packed Object Identifier for Device instance 1234 is
0x020004D2.
BACnet Object Identifier Bytes
A packed BACnet Object Identifier occupies four contents octets.
For hexadecimal identifier 0x020004D2, the four octets are:
These four bytes contain both the object type and instance; the field boundary occurs after bit 22 rather than necessarily on a full byte boundary.
10-Bit BACnet Object Type Field
BACnet reserves ten bits of the Object Identifier for its object-type value. That means the packed format itself provides 1024 possible numeric type values.
Standard object types occupy assigned values while additional values can be used according to BACnet’s standard and proprietary object-type rules. The calculator therefore includes common named types and also permits direct numeric object-type entry.
22-Bit BACnet Object Instance Field
The lower 22 bits contain the object instance:
The all-ones instance value has special wildcard or unspecified meaning in BACnet contexts, so the calculator marks it separately.
BACnet Object Instance 4194303
Decimal value 4194303 is hexadecimal 0x3FFFFF, which means all
22 instance bits are set.
BACnet uses this value as a special unspecified or wildcard instance value in relevant protocol contexts rather than treating it like an ordinary configured object instance.
Common BACnet Object Types
| Type Number | Object Type | Typical Purpose |
|---|---|---|
| 0 | Analog Input | Analog measured input value |
| 1 | Analog Output | Analog commandable output |
| 2 | Analog Value | Internal analog value |
| 3 | Binary Input | Two-state measured input |
| 4 | Binary Output | Two-state output |
| 5 | Binary Value | Internal binary value |
| 8 | Device | Represents the BACnet device itself |
| 17 | Schedule | Time-based scheduling |
| 20 | Trend Log | Historical value logging |
| 51 | Network Port | Network interface information |
BACnet Analog Input Object Identifier Example
Analog Input has standard object type number 0. For Analog Input instance 1:
Because the object-type value is zero, only the instance bits are visible in this simple packed example.
BACnet Device Object Identifier
The Device object has standard object type 8. A device’s object instance has special importance because BACnet devices are identified by their Device object instance across the BACnet internetwork.
How to Decode a BACnet Object Identifier
Enter the BACnet Object Identifier as hexadecimal or unsigned decimal.
Shift the identifier right by 22 bits to recover the object-type number.
Apply mask 0x3FFFFF to recover the object instance.
The calculator maps standard numeric values to commonly recognized BACnet object names.
Instance 4194303 is identified as the special unspecified/wildcard value.
Example: Decode 0x020004D2
Object Identifier vs Object Name
Object Identifier
A structured numeric value consisting of Object Type and Object Instance. It is compact and is directly used in BACnet protocol operations.
Object Name
A human-readable character string that can describe an object in a form meaningful to operators and engineering software.
The Object Identifier should not be confused with the object’s Object_Name property.
Object Type vs Object Instance
Object Type
Identifies the category of BACnet object, such as Analog Input, Device, Schedule or Trend Log.
Object Instance
Distinguishes one particular object from other objects of the same object type.
Together these fields form the BACnet Object Identifier.
Can Two BACnet Objects Have the Same Instance?
Objects of different object types can use the same numerical instance because the complete identifier includes both object type and instance.
Within the applicable BACnet object namespace, the type-and-instance combination identifies the individual object.
BACnet Object Identifier Decimal vs Hex
A BACnet Object Identifier is fundamentally a 32-bit value. Engineering tools may display that value as unsigned decimal or hexadecimal.
Hexadecimal is often easier for bit-level inspection because the packed field can be compared directly with protocol bytes.
BACnet Object Identifier ASN.1 Encoding
When an Object Identifier is encoded as a BACnet application value, the Object Identifier itself is represented using four contents octets. Application-tag encoding may additionally include the BACnet tag information outside those four contents bytes.
Common BACnet Object Identifier Mistakes
Assuming 16 + 16 Bits
The identifier is not split evenly. Object Type uses 10 bits and Instance uses 22 bits.
Shifting by the Wrong Amount
The object type must be shifted left by exactly 22 bits.
Using 0xFFFF as Instance Mask
The instance field requires the 22-bit mask 0x3FFFFF.
Treating 4194303 as Ordinary
The all-ones instance has special unspecified/wildcard meaning.
Confusing Object Type with Property ID
Object type identifies the object class. A property identifier identifies a property of that object.
Adding Application Tag to Raw Identifier
The four identifier contents octets and an application tag are separate encoding concepts.
BACnet Object Identifier Calculator FAQs
What is a BACnet Object Identifier?
How many bits are in a BACnet Object Identifier?
How many bits does BACnet Object Type use?
How many bits does BACnet Object Instance use?
What is the BACnet Object Identifier formula?
How do I decode a BACnet Object Identifier?
What is BACnet Device object type?
What is BACnet Analog Input object type?
What is BACnet Schedule object type?
What is BACnet Trend Log object type?
What is the maximum BACnet Object Instance field value?
Is BACnet instance 4194303 a normal object instance?
What is Device 1234 as a BACnet Object Identifier?
How many bytes is a BACnet Object Identifier?
Is an Object Identifier the same as Object Name?
Can different BACnet object types use the same instance number?
What mask extracts a BACnet object instance?
Can this calculator decode proprietary numeric object types?
Encode and Decode BACnet Object Identifiers
Enter a BACnet Object Type and Instance to generate the packed 32-bit identifier, hexadecimal and decimal values, four data octets and bit layout, or decode an existing Object Identifier back into its BACnet fields.