BACnet File Object Overview

The BACnet File object represents a file stored within a BACnet device and accessed through standardized File Services. File objects allow BACnet clients to read or write structured data such as trend logs, configuration files, or vendor-defined data.

Any file accessible through BACnet File Services is represented by a corresponding File object within the device.


BACnet File Services

File Services are defined in Clause 14 of the BACnet standard. This clause specifies how files may be accessed and manipulated within BACnet devices.

The BACnet standard allows two categories of files to be accessed through File Services:

  • Vendor-defined files
  • Standard BACnet-defined files

Purpose of the File Object

The primary purpose of the File object is to uniquely identify and describe a specific file within a BACnet device. This includes metadata that allows clients to understand file type, size, and access method before performing read or write operations.

Core descriptive elements include:

  • File name
  • File size
  • Creation or modification date
  • File type

BACnet File Object Properties

The following table lists the standard properties of the BACnet File object and their associated datatypes as defined by the BACnet specification.

Property Datatype
Object_Identifier BACnet Object Identifier
Object_Name Character String
Object_Type BACnet Object Type
Description Character String
File_Type Character String
File_Size Unsigned
Modification_Date BACnet Date Time
Archive Boolean
Read_Only Boolean
File_Access_Method BACnet File Access Method
Record_Count Unsigned
Profile_Name Character String

Atomic Read and Write Operations

BACnet File Services define two operations:

  • Atomic Read
  • Atomic Write

An atomic operation is defined as a single, indivisible operation in which no other read or write operation may occur on the same file simultaneously. Synchronization and concurrency control are the responsibility of the device developer.

Atomic Read Structure

Parameter Name Request Indication Response Confirm
Argument M M(=)    
File Identifier M M(=)    
Stream Access S S(=)    
File Start Position M M(=)    
Requested Octet Count M M(=)    
Record Access S S(=)    
File Start Record M M(=)    
Requested Record Count M M(=)    
Result(+)     S S(=)
End Of File     M M(=)
Stream Access     S S(=)
File Start Position     M M(=)
File Data     C C(=)
Record Access     S S(=)
File Start Record     M M(=)
Returned Record Count     M M(=)
File Record Data     C C(=)
Result(-)     S S(=)
Error Type     M M(=)

Atomic Write Structure

Parameter Name Request Indication Response Confirm
Argument M M(=)    
File Identifier M M(=)    
Stream Access S S(=)    
File Start Position M M(=)    
File Data M M(=)    
Record Access S S(=)    
File Start Record M M(=)    
Record Count M M(=)    
File Record Data M M(=)    
Result(+)     S S(=)
Stream Access     S S(=)
File Start Position     M M(=)
Record Access     S S(=)
File Start Record     M M(=)
Result(-)     S S(=)
Error Type     M M(=)

M = Mandatory   C = Conditional   S = Selection

The "=" symbol indicates equivalence to the parameter immediately preceding it.

Example File Object Instance

The following example illustrates a BACnet File object representing a trend log stored within an automation device:

Object_Identifier = (File, 7)
Object_Name = "TREND_AI1"
Object_Type = FILE
Description = "Trend of AI1"
File_Type = "TREND"
File_Size = 750
Modification_Date = (1-NOV-1995, 08:30:49.0)
Archive = FALSE
Read_Only = FALSE
File_Access_Method = RECORD_ACCESS
Record_Count = 150

FAQ: BACnet File Object

What is a BACnet File object used for?

It represents a file stored within a BACnet device and provides standardized access through File Services.

Are BACnet File objects required to use standard file formats?

No. Files may be vendor-defined or standardized, as indicated by the File_Type property.

What does “atomic” mean in BACnet File Services?

Atomic operations ensure that a file read or write completes as a single, uninterrupted operation.

Can BACnet File objects be used for trend data?

Yes. Trend logs are a common use case and are often implemented as File objects using record-based access.

Contact Us

Contact us via phone (+1 866-383-1657) or leave a detailed message below for sales, support, or any other needs

*Required Field
*Required Field
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
8:00am - 12:00pm 12:00pm - 5:00pm
Message Sent Successfully