Connecting to BBMD Devices

An interesting attribute of the Building Automation and Control Network (BACnet) is that Ethernet is supported along with several data links, and communication between the various data links is possible through the use of routers. Each data link is treated as a separate network and the collection of data links is considered a single BACnet internetwork. BACnet routers facilitate the connections, but when BACnet/IP is used as one of the data links, adjustments must be made to how BACnet routers are used in an IP network.

For more details about BACnet architecture, look online or refer to:

BACnet - Quick Start, or

BACnet - Fast Browsing BACnet Devices.

The Impact of BACnet/IP Upon BACnet Routers

BACnet/IP incorporates a four-layer ISO model as described in the BACnet standard (ANSI/ASHRAE Standard 135-2004). Routers operate at the network layer. Since routers were already defined in “The Network Layer” (clause 6 of the standard), Annex J makes reference to this clause. Annex J introduces the concept of the BACnet Virtual Link Layer (BVLL) which provides an interface between clause-6 equipment and another communications subsystem. BVLL messages can be either directed or broadcast messages. A directed message is exchanged between two IP addresses and no others. A broadcast message originates from one IP address and is sent to all other IP addresses on the subnet.

In the general case, a BACnet network consists of one or more IP subnets containing BACnet/IP devices using the same UDP port number. It is possible the BACnet network has only a single subnet. This is the simplest case since both directed and broadcast messages are sent along the subnet with no restrictions.

However, if more than one subnet comprises the BACnet/IP network, there is an issue. Referring to Figure 1, an IP router is required to connect the IP subnet to the Internet or to an internetwork. IP routers perform differently than BACnet routers. Broadcast messages could be (and usually are) blocked by these IP routers if the IP routers do not support what is called a directed broadcast. For a directed broadcast to pass through the IP router, the IP router must support a feature called bridging in which the IP router treats these directed broadcasts more like a switch than a router. If this type of IP router cannot be found, then a way of managing broadcasts in a sub-netted BACnet/IP network must be devised.

Figure 1 - BACnet/IP traffic is unrestricted with one subnet

BACnet/IP Broadcast Management Device (BBMD)

With a BACnet/IP network comprised of two or more IP subnets, a local broadcast may not be able to span multiple subnets. If so, a device called a BBMD must be used. A BBMD located on an IP subnet monitors the origination of a broadcast message on that subnet and, in turn, constructs a different broadcast message disguised as a directed message in order to pass though an IP router. This disguised message is directed to other BBMDs (located on the various subnets) that receive the directed message and retransmit the broadcast on their attached subnets. Since the BBMD messages are directed messages, individual messages must be sent to each BBMD.

Each BBMD device maintains a Broadcast Distribution Table (BDT), the content of which is usually the same for all BBMDs within the network. BBMDs must know the IP address of all other BBMDs in the network. Note in Figure 1 that there is one BBMD on each subnet.

Figure 2 - A foreign device can reside on a subnet without a BBMD

It is possible to communicate to a device on a subnet that does not have a BBMD as in Figure 2. This type of device is called a foreign device since it resides on a different IP subnet from devices attempting to communicate with it. Usually, in BACnet lingo, a foreign device is on a different network — but with BACnet/IP, a foreign device is on a different subnet. If the foreign device registers with the BBMDs, it can be seen and able to communicate with all other devices on the network. The BBMD must then maintain a Foreign Device Table (FDT).

The final example is shown in Figure 3. In this case a non-BACnet/IP data link is attached via a BACnet router — creating two networks but one BACnet internetwork. This example demonstrates the flexibility of BACnet in that legacy data links or lower-cost data links can be supported along with more modern IP networks. There is nothing to preclude the embedding of a BBMD within the BACnet router — thereby eliminating one device on the subnet.

Figure 3 - The addition of a non-BACnet/IP data link results in two networks

Preparing Network/Router/BBMD Device

Before you start to browse for the data, make sure the following:

  • Network topology – at least 2 different networks are interconnected via router which plays a role of gateway. In our case it looks as follows:

    • 1st network – Office network (172.16.0.0)

    • 2nd network – BACnet / IP Net1 (172.16.55.0), where

    • Gateway = Internet router

        • Internal Interface – 172.16.0.1

        • External Interface – 172.16.55.1

  • Internet router is properly configured

    • Internet Router plays a role of GW - BACnet Network (internal), GENESIS64 PC (external).

    • Firewall port 47808-47809 is open / forwarded.

    • NAT is disabled (at least for testing purposes).

Enabling BBMD Device via Workbench

This configuration shows how to configure a BBMD device for the case where GENESIS64 server plays the role of a BBMD device. By default, a BBMD device is not selected.

  1. Launch the Workbench.

  2. Click the BACnet icon in the Workbench project explorer.

  3. Navigate to localhost -> BACnet -> Port via tree control on the left.

  4. Right-click on Ports and choose Add Port or click the button from the toolbar and select Add Port. The BACnet Port settings will come up.

  5. Type a name in the Port Name textbox and enter a Description (optional).

  6. Make sure that "BACnet IP" is selected as Channel Type and you have the right Network segment.

  7. Leave the Adapter field within the Ethernet Settings section as default. It is your primary network card.

NOTE: If you have 2 network cards, make sure that you selected the right one via the dropdown menu.

  1. Check the box “BBMD Devices” and make sure that you have number of “Maximum Foreign Devices” entered correctly.

  2. Add an IP Address (in our case: 172.16.0.1) into the BDT (Broadcast Distribution Table) field to allow connection between this and other devices. The IP address will be automatically transformed into the right format.

Enabling BBMD device in Workbench

NOTE: If you want to connect directly to “Foreign device”, then enable the checkbox “Foreign device” and set the BBMD parameters appropriately.

Resolving Values in GraphWorX64

  1. Start GraphWorX64 -> New display.

  2. Add a new process point in your GraphWorX display and click on the “Data Tags” button to browse for the BACnet data.

  3. When the Data Browser opens, click on the BACnet tab on the left. You should see a list of BACnet devices.

NOTE: It can take some time to create a runtime application pool as all BACnet devices need to be scanned (broadcasted). You can also click on Refresh button to refresh the list of devices in Data Browser.

  1. When you have PPT added on your GraphWorX64 display, switch to runtime mode and you would see BACnet value resolved.

NOTE: Please notice that BACnet Runtime creates a cache and stores it into file. So, if you made some changes in Workbench or specifically on BACnet device and Unified Browser did not reflect these changes in runtime then you can always clear this cache by following these steps:

  • Delete following files:

    • C:\ProgramData\ICONICS\BACnetCache.csv

    • C:\ProgramData\ICONICS\BACnetCache.csv.bak

  • BACnetRuntime64.exe can be signaled via Task Manager.