Skip to main content
Version: v0.2.2

BACnet Server

About BACnet Server

The server node serves the purpose of reading and writing values to the driver-bacnet. This functionality enables Rubix Compute to be integrated into a BACnet network.

tip

See also: Tutorials BACnet-device The BACnet-server node serves two primary use cases:

  1. Integrating hardware input/output (e.g., sensors and 0-10dc) into Rubix Compute by adding the Nube-IO IO-16.
  2. Adding proxy points (Analog Values and Binary Values) to the driver-bacnet. Before proceeding, ensure you have installed the required apps, particularly driver-BACnet.
driver networks conflict

In Rubix, you can't simultaneously add a Modbus network in the driver's settings and the BACnet-server node using the same serial-port. You have to choose one or the other, as they cannot coexist on the same port.

Setup

Add the bacnet-server node

  1. Open the Rubix Wires interface.
  2. Locate and select the option to add a new node.
  3. Choose the BACnet-server node from the available options.
  4. Configure the node by setting the number of IO-16s if applicable to your use case.
  5. Set the serial port according to your hardware setup.
  6. Save/Deploy the configuration.

bacnet-server.png

Adding points

Following steps below allows you to effectively add points to the BACnet-server node in Rubix Wires.

  1. Open the BACnet-server node by right-clicking and selecting Open sub flow.
  2. Once inside, you can add nodes by right-clicking or dragging from the palette.
  3. Add a new node, selecting either AI (Analog Input), AO (Analog Output), or AV (Analog Value).
  4. Set the node name to specify the BACnet object name for the point.
tip

Ensure to set the node name to accurately reflect the point name on the BACnet network.

BACnet point nodes

Node NameCategoryUse Caseis writeable
analog-inputbacnetIs only used when the IO-16s are added (will work with UIs)read only
analog-outputbacnetIs only used when the IO-16s are added (will work with UOs)writeable via in14 & in15
analog-variablesbacnetto read and and write values to AVs on the bacnet-server, eg a set-pointwriteable via in14 & in15
binary-variablesbacnetto read and and write values to BVs on the bacnet-server, eg an enablewriteable via in14 & in15

Adding IO-16s

Adding upto 4x IO16s will make the Rubix Compute a BACnet-ip IO device

rc-with-io16s.png

Adding a AI or AO

caution

In the flow-framework, there's no necessity to add a Modbus network to communicate with the IO-16s.

caution

To configure the BACnet-Server with the desired number of IO-16s, you typically access the BACnet-Server settings interface and input the quantity of IO-16s you intend to add.

To proceed, a systematic outline of each step for adding UI-1 on IO-2 is as follows:

  1. Power down the Rubix Compute.
  2. Connect 2x IO16s to the Rubix Compute. Remember, the IO-16s are powered via the Rubix Compute.
  3. Set the dip switches on IO16 number 1 to address 1 and on number 2 to address 2. Ensure the baud rate is set to 38400 as well.
  4. Refer to the documentation for more info on setting up the IO-16s.
  5. Power up the Rubix Compute.
  6. Open the BACnet-server node.
  7. Add an Analog Input (AI) node to the BACnet-server configuration.
  8. Right-click on the newly added AI node and select Settings.
  9. Configure the IO Device Number to 2, indicating the 2nd IO-16.
  10. Set the UI Number to 1, representing UI1.
  11. This configuration will assign the Analog Input as AI9.
tip

Given that the IO-16 utilizes UOs (Universal Outputs) and UIs (Universal Inputs), only AOs (Analog Outputs) and AIs (Analog Inputs) can be added.

But we can employ UI-1 as a DI (Digital Input), an AI node should be added and configured to address 1 (AI1). Subsequently, it should be set as a digital input.

writing to a UO as digital

To enable this functionality:

Add an AO (Analog Output) node and set its settings to operate in a digital mode. Configure the point to accept any value greater than 1 to activate the Digital Output (DO). For instance, the point should interpret values like true/false, 1/0, or 10/0 to control the DO.

UI/UO to BACnet Addressing

Example for inputs

Device AddressIO NumberBACnet address
1UI1AI1
1UI2AI2
1UI3AI3
1UI4AI4
1UI5AI5
1UI6AI6
1UI7AI7
1UI8AI8
2UI1AI9
3UI1AI17

This device addressing can be extended until you reach the limit of 4x IO1-6 devices.

Example for outputs

Device AddressIO NumberBACnet address
1UO1AO1
2UO1AO9
3UO1AO17