What the File Object Is
The File object, defined in Clause 12.13 of ANSI/ASHRAE 135-2024, is how a BACnet device makes a data file visible and accessible on the network. The object itself describes the file (its type, size, access method, and modification date); the file’s contents are read and written with the AtomicReadFile and AtomicWriteFile services.
File_Access_Method decides how the contents are addressed: a stream-access file is read and written by byte offset, while a record-access file is addressed by record number and exposes Record_Count. Read_Only marks a file that cannot be written, and File_Size and Modification_Date let a client see whether the file has changed since it was last fetched. File objects are the mechanism behind device backup and restore, where configuration is moved as one or more files.
Where You’ll See It
- Backup and restore. A device presents its configuration as File objects so a head end (the central BMS server) can pull a backup and push it back during restore.
- Firmware and configuration transfer. Stream-access File objects carry firmware images or large configuration blobs to and from a controller.
- Record data. A record-access File exposes structured logs or tables that a client reads record by record.
Required Properties
Clause 12.13 requires every File object to provide these properties. Datatypes are the spec’s names: Unsigned is an integer, BOOLEAN a true/false flag, CharacterString a text string, and the BACnet-prefixed types are structured values defined by the standard.
| Property | Datatype | What it holds |
|---|---|---|
Object_Identifier | BACnetObjectIdentifier | The object’s type and instance number, unique within the device |
Object_Name | CharacterString | The human-readable point name, unique within the device |
Object_Type | BACnetObjectType | Always file for this object |
File_Type | CharacterString | A vendor-defined label describing the kind of file |
File_Size | Unsigned | The current size of the file in bytes (or octets) |
Modification_Date | BACnetDateTime | When the file was last modified |
Archive | BOOLEAN | Writable; whether the file has been archived since its last modification |
Read_Only | BOOLEAN | Whether the file’s contents can be written |
File_Access_Method | BACnetFileAccessMethod | Whether the file is addressed by byte stream or by record |
Property_List | BACnetARRAY[N] of BACnetPropertyIdentifier | The list of properties this instance actually implements |
Optional Properties
The File object has a small optional set. Record_Count appears on record-access files (the number of records), and the auditing properties appear only on devices that support audit reporting.
| Property | Datatype | Group |
|---|---|---|
Description | CharacterString | General |
Record_Count | Unsigned | General |
Audit_Level | BACnetAuditLevel | Auditing |
Auditable_Operations | BACnetAuditOperationFlags | Auditing |
Tags | BACnetARRAY[N] of BACnetNameValue | Tagging and profile |
Profile_Location | CharacterString | Tagging and profile |
Profile_Name | CharacterString | Tagging and profile |
Related Objects
- Analog Value and other value objects: the point data a File-based backup captures and restores.
- The File object is read and written through the File Access services rather than the ordinary property services, which sets it apart from the value and log objects.
What Chipkin Provides
The File object describes stream- and record-access files and works with the AtomicReadFile and AtomicWriteFile services behind device backup and restore. Talk to us about modeling your device’s points.