BACnet RDK

The BACnet specification can be a little daunting to even the most experienced computer programmer. The specification is over 500 pages long and requires an in depth knowledge of TCP/IP, threading etc. Not only is it very time consuming to build a driver, it is very difficult to provide all of the features that BACnet has to offer. The BACnetX ActiveX component eliminates the need for a developer to write the BACnet Driver so they can concentrate on the implimentation of the driver into an application.

The BACnet RDK consists of an ActiveX component called BACnetX that can be used to develop a BACnet Application. The BACnetX ActiveX Component could be used to build a Management Station, Display Real Time Data on a Web page, or in a Gateway.

Table Of Contents

BACnetX ActiveX Component

BACnetX is an ActiveX dll that provides an API for providing BACnet Client and Server capability into any Microsoft Windows Application using VB, .Net, Delphi, Java etc. For Visual Studio C++ applications we reccomend the BACnet Server API. BACnet services, datatypes etc. are represented as ActiveX objects that can be built into a Visual Basic application.

Server Mode

When operating as a Server, BACnetX will respond to BACnet requests from other devices. Standard BACnet services such as readProperty etc. are all handled by BACnetX automatically which is able to understand the request and send a response based upon the Internal Objects stored within BACnetX. BACnet Internal Objects can be created inside the BACnet Server for storing real-time data. When operating in this mode an application will create the required objects and then pass real time data to the internal objects. BACnetX automatically handles the communication between other clients, it will respond to requests such as readProperty, subscribeCOV etc. If another device writes to an object, then an event is fired to indicate this has taken place. BACnetX can easily store 10,000 internal objects and it is possible to quickly create a gateway application to many third party systems.

Client Mode

When operating as a Client, BACnetX can be used to send almost any standard BACnet Service to another BACnet Device. These BACnet Services can be used to access the BACnet Objects for reading, writing etc.

Services Supported

The BACnetX ActiveX Component implements the following services listed in the the table. All Objects support COV reporting as well as Intrinsic Reporting for Alarms.

BACnet Service Initiate Execute
Who Is Yes Yes
I Am Yes Yes
Who Has Yes Yes
I Have Yes Yes
Read Property Yes Yes
Write Property Yes Yes
Device Communication Control Yes Yes
ReinitializeDevice Yes Yes
Atomic Read File Yes Yes
Atomic Write File Yes Yes
Time Synchronization Yes Yes
UTC Time Synchronization Yes Yes
Subscribe COV Yes Yes
Subscribe COV Property Yes Yes
Confirmed COV Notification Yes Yes
Unconfirmed COV Notification Yes Yes
Read Property Multiple Yes Yes
Read Property Conditional - -
Read Range Yes Yes
Write Property Multiple Yes Yes
Get Alarm Summary Yes Yes
Get Event Information Yes Yes
Get Enrollment Summary Yes Yes
Acknowledge Alarm Yes Yes
Confirmed Event Notification Yes Yes
Unconfirmed Event Notification Yes Yes
Unconfirmed Text Message Yes Yes
Confirmed Text Message Yes Yes
Add List Element Yes Yes
Remove List Element Yes Yes
Create Object Yes Yes
Delete Object Yes Yes
Unconfirmed Private Transfer Yes Yes
Confirmed Private Transfer Yes Yes
VT Open - -
VT Data - -
VT Close - -
Life Safety Operation Yes Yes
Get Event Information Yes Yes

Object Types Supported

The BACnetX ActiveX Component implements the following objects listed in the the table.

BACnet Object Creatable Deletable
AnalogInput Yes Yes
AnalogOutput Yes Yes
AnalogValue Yes Yes
BinaryInput Yes Yes
BinaryOutput Yes Yes
BinaryValue Yes Yes
Calendar Yes Yes
Command Yes Yes
Device No No
EventEnrolment Yes Yes
File No No
Group Yes Yes
Loop Yes Yes
MultistateInput Yes Yes
MultistateOutput Yes Yes
NotificationClass Yes Yes
Program No No
Schedule Yes Yes
Averaging Yes Yes
MultistateValue Yes Yes
TrendLog Yes Yes
LifeSafetyPoint Yes Yes
LifeSafetyZone Yes Yes
Accumulator Yes Yes
PulseConverter Yes Yes