CALL NOWCALL NOWCALL NOWGATEWAY SELECTORCALL NOWGATEWAY SELECTORLEARN MORELEARN MORE PROCEED TO CHECK-OUT SUBSCRIBE TO OUR RSS FEED SEARCH GATEWAYS NOW SEND MESSAGE NEWSLETTER | SUBSCRIBESUBMIT CALL NOWCALL NOWCALL NOWGATEWAY SELECTORCALL NOWGATEWAY SELECTORLEARN MORELEARN MORE PROCEED TO CHECK-OUT SUBSCRIBE TO OUR RSS FEED SEARCH GATEWAYS NOW SEND MESSAGE NEWSLETTER | SUBSCRIBESUBMIT

BACnet: The 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 FileMM(=)
Stream AccessSS(=)
File Start PositionMM(=)
File DataCC(=)
Record AccessSS(=)
File Start RecordMM(=)
Returned Record CountMM(=)
File Record DataCC(=)
Result(-)SS(=)
Error TypeMM(=)

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 AccessSS(=)
File Start PositionMM(=)
Record AccessSS(=)
File Start RecordMM(=)
Result(-)SS(=)
Error TypeMM(=)

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

Written by: Scott Cosby

Gateway Selector

Select your combination of protocols.
Protocol 1
Protocol 2

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
I'd like to receive the newsletter. *Check email for confirmation.
*Required Field
Preferred Time To Be Contacted (PST)
8:00am - 12:00pm 12:00pm - 5:00pm