BACnet - What is a BACnet File object

The File object is defined by the BACnet standard as data files that are described by the object's properties, and accessed through File Services.

File Services is listed in the standard as Clause 14. The clause describes the access and manipulation of files within BACnet devices. The developer has two options regarding file types accessed through File Services:

  • Vendor defined files
  • Bacnet standard files

Any file accessible through File Services has a related File object in a BACnet device.

The primary purpose of the File object is to identify a specific file through the following descriptions:

  • File Name
  • File Size
  • Creation Date
  • File Type

The following table will present the actual properties and associated datatypes of the File object from the BACnet standard:

PropertyDatatype
Object_IdentifierBACnet Object Identifier
Object_NameCharacter String
Object_TypeBACnet Object Type
DescriptionCharacter String
File_TypeCharacter String
File_SizeUnsigned
Modification_DateBACnet Date Time
ArchiveBoolean
Read_OnlyBoolean
File_Access_MethodBACnet File Access Method
Record_CountUnsigned
Profile_NameCharacter String


The developer should be aware that File Services has two specific operations:

  • Atomic Read
  • Atomic Write

The meaning of Atomic is defined in the standard as a singular operation in that no other similar operation is permitted for the same file. In addition, the synchronization of these operations is matter for the developer.

The following two tables will examine the structure of the Atomic Read and Write operations:

Atomic Read Structure Table

Parameter NameRequestIndicationResponseConfirm
ArgumentMM(=)    
File IdentifierMM(=)    
Stream AccessSS(=)    
File Start PositionMM(=)    
Requested Octet CountMM(=)    
Record AccessSS(=)    
File Start RecordMM(=)    
Requested Record CountMM(=)    
Result(+)    SS(=)
End Of File    MM(=)
Stream Access    SS(=)
File Start Position    MM(=)
File Data    CC(=)
Record Access    SS(=)
File Start Record    MM(=)
Returned Record Count    MM(=)
File Record Data    CC(=)
Result(-)    SS(=)
Error Type    MM(=)

Atomic Write Structure Table:

Parameter NameRequestIndicationResponseConfirm
ArgumentMM(=)    
File IdentifierMM(=)    
Stream AccessSS(=)    
File Start PositionMM(=)    
File DataMM(=)    
Record AccessSS(=)    
File Start RecordMM(=)    
Record CountMM(=)    
File Record DataMM(=)    
Result(+)    SS(=)
Stream Access    SS(=)
File Start Position    MM(=)
Record Access    SS(=)
File Start Record    MM(=)
Result(-)    SS(=)
Error Type    MM(=)

M - Mandatory parameter.
C - Conditional parameter.
S - Selection parameter from a collection of two or more possible parameters.

The code "=" following one of the codes M, C, or S indicates that the parameter is equivalent to the parameter to its immediate left in the table.

The following example from the BACnet standard will present the File object structure from an actual automation application. This example will specifically examine a File object that contains trend information:

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

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