BACnetX ActiveX Component - Frequently Asked Questions

Where I can get more information about BACnet?

Developed under the auspices of the American Society of Heating, Refrigerating and Air-Conditioning Engineers (ASHRAE), BACnet is now an American national standard, a European pre-standard, and a potential global standard. BACnet is "a data communication protocol for building automation and control networks." A data communication protocol is a set of rules governing the exchange of data over a computer network. The rules take the form of a written specification (in BACnet's case they are also on compact disk) that spells out what is required to conform to the protocol.

What is a Device ID?

The Device ID is used to uniquely identify each BACnet Device, it can be in the range of 0 to 4194304. There cannot be more than 1 device using the same Device ID.

How can I change the Device ID?

By default BACnetX will have a Device ID of zero, it can be changed in the initialization string when the application starts.


Private Sub Form_Load()
    Set objApplicationLayer = New BACNETXLib.ApplicationLayer

    'Start BACnetX with a Device ID of 200
    objApplicationLayer.Initialize 200

End Sub

How can I change the BACnet/IP Network Number?

The Initialize method of the ApplicationLayer object has an optional second parameter called a connection string. The connection string can be used to configure optional properties like the UDP Port Number

Private Sub Form_Load()
    Set objApplicationLayer = New BACNETXLib.ApplicationLayer
    objApplicationLayer.Initialize 200 "TYPE=BACNETIP;NETWORK=1;"
End Sub

How can I change the UDP Port?

The Initialize method of the ApplicationLayer object has an optional second parameter called a connection string. The connection string can be used to configure optional properties like the UDP Port Number

Private Sub Form_Load()
    Set objApplicationLayer = New BACNETXLib.ApplicationLayer
    objApplicationLayer.Initialize 200 "TYPE=BACNETIP;NETWORK=1;UDPPORT=47808;"
End Sub

Where do I specify the IP Address?

You don't need to, BACnetX will locate other devices on the network using the BACnet Services whoIs/Iam. Using these services, BACnetX will automatically map a Device ID to an IP address.

What is a BACnet Object?

A BACnet object is a stored inside a BACnet device to hold information. There are standard object types like Analog Input, Analog Output, etc which are used to hold real time data and other information. Each Object Type is referenced by a number, for example 0 is an analog input. Each Object has many properties for holding information and must contain an ObjectName. Objects are numberred within a device from 0 to 4194304

What is a BACnet Property?

A property is an item within a BACnet Object. For example an ObjectName, PresentValue, Description etc are all properties of an object. In most cases, you will only ever use the PresentValue property.

What is the Array Index?

Some properties are stored as an array. For example the ObjectList is stored as an array of object identifiers. The PresentValue property is not an array, for all properties that are not arrays, an array index of -1 must be used.

How do I access information?

First of all you need to know which device to talk to using it's Device ID. Then you need to find out the Object Type, Instance, Property and Array Index.

What are Internal Objects?

BACnet Internal Objects are BACnet Objects stored inside BACnetX, they are visible as BACnet Objects to other BACnet devices on the network.

Can I use BACnet Ethernet?

Yes, there is a seperate dll which has BACnet Ethernet support built in. You will need to register this dll instead of BACnetX.dll It also requires winpcap to be installed in order for it to run. BACnet Ethernet was superseeded by BACnet/IP but it may still exist on some older systems.

What depencies does BACnetX have?

BACnetX requires the following dll's to be present on the target machine. Note that normally these files would already be loaded onto a Windows PC.

COMCTL32.DLLMicrosoft Common Controls
MSVCP60.DLLMicrosoft Visual Studio runtime
MSVCRT.DLLMicrosoft Visual Studio runtime
WININET.DLLWindows Internet connection control
WS2_32.DLLWindows Sockets Library

Does BACnet work across subnets?

Yes, but a BBMD needs to be installed.

What is a BBMD?

A BBMD (BACnet Broadcast Management Device) is used to allow devices on different subnets to communicate to one another. There can only be one BBMD on each subnet. BACnetX can be configured to operate as a BBMD.

What is a Foreign Device?

A foreign device is a device that is not on the same subnet as a BBMD. BACnetX can operate as a foreign device to enable it to connect across subnets.

Does BACnetX support COV Reporting?

Yes, BACnetX fully supports COV reporting.

Does BACnetX support Intrinsic Reporting?

Yes, all internal objects support Intrinsic REporting for Alarms.