BACnet Connector

BACnet Connector

The BACnet connector is a BTL Certified BACnet Operator Workstation (OWS). All the information in this section refers to using the connector as a BACnet client.

To communicate with BACnet MSTP devices, use a BACnet Router. The router will pass the messages between FIN on the IP network and the BACnet devices on the MSTP network.

Not supported on a MAC environment.

Discover & Add BACnet Connector

NOTE: Before the user can discover and add BACnet devices, they may need to configure their BACnet Stack using the Global Bacnet Config Tool.

The Discover button allows the user to discover BACnet devices on their network. This allows an easier process to add connectors.

1. Select Discover button, this will automatically discover the devices on the network

2. The user will be displayed with two rows - Discovered Devices & Added Devices

  • Discovered Devices: This will display available devices that can be added to FIN

  • Added Devices: Will list the connectors that have been added to FIN

3. The user will need to select on the equips(s) they want to add to the database

  • If the user wants to add multiple connectors, hold down the Alt button and click on another connector to highlight more of them

4. After choosing the connectors, select on the Add button, this will automatically refresh and add the connectors

  • it will display the added connectors underneath the BACnet tree and Added Devices section

Discover & Add Points

The user will need to navigate to an equip in the Equip Tree before being able to add the connector points

1. Select on a connector underneath the BACnet tree, this will display a new view

2. In the new view, select the Discover Points button which is located on the bottom of the grid view

  • This will automatically discover the points for the selected connector.

  • Selecting Discover Points again less than a minute of the first time will load the list of points cached from the first discovery. After a minute, it will do a fresh re-discover of the points.

  • Re-discover button always does a fresh re-discover of points.

3. The user will be displayed with two sections:

  • Discovered Points: This will display available points that can be added to the connector selected

  • Added Points: Will list the points that have been added to an equip in the Equip Tree

4. The user will need to select on point(s) they want to add to the database

  • If they want to add multiple points, hold down the Alt button and click on another point to highlight more of them

5. Once the points have been selected, the user will need to select and drop the points underneath the equip they want the connector points to be located in

6. When the user drops the points, they will be displayed with a Warning prompt window asking the user if the connector points are being dropped in the correct location

7. If the user accepts, they will be directed to the Batch Record Editor form

8. After matching the points and selecting on the Apply button, the form will generate the points underneath the selected equip

9. The user can see the point will contain a connector ref and cur path from the location inside the connector

Sync Schedule Type

The Sync Schedule Type button was created to allow the user to easily assign state_texts from another object (Binary or Multi-state) to a schedule object before importing the schedule objects into the database. Once the state_texts are mapped to the schedule object and re-discovering the points, the schedule objects will appear as the correct type. This is only available for schedule objects and used on schedule objects that don’t appear as the correct type due to them not having a list of object references associated to them to know how to map them.

Using the Sync Schedule Type button:

  1. Discover the points on a connector

  2. Notice that a schedule object doesn’t appear to be a correct type (e.g. - an boolean type schedule is appearing as a number type)

  3. Select the boolean schedule object in the discovered list

  4. Click on the Sync Schedule Type button

  5. Then in the Sync Schedule Type popup, the user would see the below properties:

    1. Schedule type - here the user would select the type that the selected schedule object should be

    2. Device identifier - the schedule object’s parent object_identifier is listed

    3. Schedule object - the schedule object’s object_name is listed

    4. Dropdown list - depending on Schedule type selected above, this will list available BVs and MSVs found on the device to choose from for the state_text to map to the selected schedule object(s)

  6. Once the user applies the changes, they would re-discover the points and the schedule object should now be the correct type.

  7. Now the user can import the schedule object into the database to use it.

  8. If the user chose the wrong type and/or wants to reconfigure it again. They can go to Folio → Launch and query for this func bacnetReadEnumPropValMapping().

  9. That will return all the mapped schedule object conversions.

  10. The user can then select which one they want to re-do or remove and delete them.

  11. Once deleted, the user would re-discover the points again and find the schedule objects to be the incorrect type again to re-map.

Discovery Filters

The Discovery Filters was created to allow the users to filter for certain BACnet objects to narrow down the search.

 

Properties of Discovery Filters popup:

  • Point Type - Select the object type to be filtered. If it doesn’t exist in the default list, a new type can be entered. It has to be in ALL CAPs.

  • Instance Range - Enter the range in which the object instance(s) are within to find them. The range can be between 0-4194302.

  • Add Filter - This where additional filters can be added to filter multiple object types at one time.

  • Reset - This would reset the filters back to the default to discover all object types.

Process when using Discovery Filters:

  1. The user would first select the BACnet connector they wish to discover points on.

  2. Then select the Discovery Filters button to apply desired filter(s).

  3. After that, discover the points using the Discover Points button.

  4. If the Discovery Filters need to be modified after having discovered the points, open the Discovery Filters popup again and make the necessary changes.

  5. Then either do a Re-discover to apply the new discovery filters or unselect the current BACnet connector to reselect it again and do a Discover Points. If using this on a device that has a ton of points, we recommend doing the latter as the points are currently cached and will load quicker than a re-discover.

Time Stamp

The user can select a timestamp (located on the right underneath the discover) to see what connectors were discovered at that particular time

  • If the user selects on a connector they are able to add the selected connector

  • If the user wants to add multiple connectors, hold down the Alt button and click on another connector to highlight more of them

Discover Settings

The tool auto recognizes if there are existing configurations and applies them in the tool based on what is selected.

If the user needs to make changes to the current configurations already set up:

  • They can either re-run the auto-configuration again which will override the existing configurations

  • They can manually configure each device in the manual window.

 

The following fields on the tool are below:

  • Broadcast Address - address of what is being searched for

  • Custom Broadcast Address - if the address of what is being searched doesn't appear in the Broadcast Address dropdown, the user can type it in here. User can also specify the port if needed if other than the standard port of 47808.

  • Local Address - address of local machine doing the discovering (not configurable in this window, refer to the BACnet Global Config tool below)

  • Instance Number Start - the lowest instance to check can be configured here to narrow search results (default is 0).

  • Instance Number End - the highest instance to check can be configured here to narrow search results (default is 4194303).

  • Network Number - to narrow network, the user can specify it here else leave as is (default is 65535).

  • Timeout (seconds) - time spent to try and discover for said devices (default is 8).

To send a global broadcast as an unconstrained “Who Is”, set both the Instance Number Start and End to -1. This will send a broadcast without the low/high instance limits. When the BBMD receives these global broadcast requests, it will then forward it to it’s peer BBMDs.

Connector Tools

There are two locations where the user has access to the tools

  1. Tool Icon: Located on the bottom of the tree view

  2. Grid View: Display when the user selects on the BACnet option underneath the Connector tree

Add

There are two methods of adding a BACnet connector manually:

  1. Bottom of the Tree View

    1. Select on the [+] located on the lower left-hand side

    2. It will display a prompt window Add BACnet Connector, where the user needs to fill out

    3. To apply the changes, select on the Add button which will automatically update the connector tree and grid view

  2. Grid View

    1. Select on the Add button located on the bottom of the grid view

    2. It will display a prompt window Add BACnet Connector, where the user needs to fill out

    3. To apply the changes, select on the Add button which will automatically update the connector tree and grid view

The following are the fields for the Add BACnet Connector tool

  • Display Name: Represents the display name of the connector

  • Host: The IP of the device

  • Device Instance: The instance of the device

  • Network Number: Is the network number of the device

  • MAC Address: Is the mac address of the device

  • Hop Count: Is the hop count of the device (default is 255)

Edit

There are two methods of editing a connector

  1. Bottom of Tree View

    1. Select a connector that the user wants to edit

    2. After the selection, click on the Edit Icon located on the lower left-hand side

    3. This will display a prompt window Edit BACnet Connector, where the user can make changes to the connector

    4. After makes changes, go ahead and select on the Apply button to add the changes

  2. Grid View

    1. Select a connector that the user wants to edit

    2. After the selection, select on the Edit button on the bottom of the grid view

    3. This will display a prompt window Edit BACnet Connector, where the user can make changes to the connector

    4. After makes changes, go ahead and select on the Apply button to add the changes

Delete

There are two methods of deleting a connector:

  1. Bottom of Tree View

    1. The user will need to select a connector on the grid view, which will highlight the connector and enable the tools on the bottom of the Grid View

      1. If the user wants to delete multiple connectors, hold down the Alt button and click on another connector to highlight more of them

    2. Select the [-] located on the lower left-hand side

    3. The user will be displayed with the option Delete which they will need to select

    4. The user will get a prompt window, where they need to confirm if they approve of the deletion

    5. Once confirmed, the connector will be removed from both the BACnet connector tree and grid view

  2. Grid View

    1. The user will need to select a connector on the grid view, which will highlight the connector and enable the tools on the bottom of the Grid View

      1. If they want to delete multiple connectors, you can hold down the Alt button and click on another connector to highlight more of them

    2. Select on the Delete button

    3. The user will get a prompt window, where they need to confirm if they approve of the deletion

    4. Once confirmed, the connector will be removed from both the BACnet connector tree and grid view

Clone

The Clone tool uses one perfected equip template and applies that to however many equip from a connector a

  1. The user will need to select on a connector in the grid view

    1. This will highlight the connector and enable the Clone button located on the bottom of the grid view

  2. Select on the Clone button, which will display a prompt window Clone Options

  3. When the fields have been filled out, the user can select on the Create and the form will then execute the process

The options to select are:

  • Show Equipment From

  • Equip to Use as a Template

  • Base URL: This is where the desired equip (from the connector) to clone will be added

  • Targets: This is where the equips (from the connector) to be cloned will be added

Ping

To update the status to make sure it is okay

  1. The user will need to select on a connector in the grid view

    1. This will highlight the connector and enable the Clone button located on the bottom of the grid view

  2. Select on the Ping button, which will try to establish a connection

  3. Immediately, the user will see the change in state (usually from Closed → Open)

Debug

Displays the debugging for a particular BACnet connection

  1. The user will need to select on a connector in the grid view

    1. This will highlight the connector and enable the Debug button located on the bottom of the grid view

  2. Select on the Debug button, which will display a prompt window Debug Info

Enable/Disable

The user is able to enable or disable their connector(s).

Write Level

Change the default write level of the connector

  1. The user will need to select on a connector in the grid view

    1. This will highlight the connector and enable the Write Level button located on the bottom of the grid view

  2. Select on the Write Level button, which will display a prompt window Set Default Write Level

BACnet Global Config

Displays the global configurations for BACnet.

The available configuration settings are:

  • Instance Number - This is instance number for FIN on the BACnet network. The instance number can range from 0 to 4,194,302. This instance number must be unique across the whole BACnet network where FIN is installed.

  • Local Network Number - The network number can range from 1 to 65534. This number is the BACnet network number for all the devices shared from this FIN BACnet Server. This network number must be unique across the whole BACnet network where FIN is installed.

  • Local Bind Address - The 0.0.0.0 is the default setting and can be changed if declaring a specific network card that the BACnet stack will bind to.

  • Port Number - The port 47808 is the default and can be changed if declaring a non-standard port to be used by the BACnet stack.

  • APDU Timeout - Sets the time in milliseconds or seconds that the connector will wait for a response from a device after sending a request. Default is 6000ms (recommended).

  • Retry Count - This determines how many times a connector will retry to respond before an error is returned. The higher amount of retries will give the connector more chances to re-establish connection with the device. The default is 3 (recommended).

  • Server Network Number - This is network number for the BACnet Server if being used. The BACnet Server extension needs to be enabled to use this. If not using the BACnet Server, it is recommended to disable the extension.

Foreign Device Setup

Below is how to register FIN as a Foreign Device.

The parameters are:

  • ipPort: The ip address and port number separated by ':'. If Port number is not provided, 47808 is assigned as default port number. It is the ip and port number of BBMD which accepts the request of the device and make its entry in the FDT (Foreign Device Table) and register the connector as a Foreign device.

  • fdRegTimeout: Timeout for foreign Device Registration(seconds)

  • timeToLive: The time for which the device is registered as Foreign device in the subnet. Note that the time provided is then added with 30 seconds(grace time). After this time, the BBMD flushes the entry of Foreign device from the FDT.

  • fdRegRetries: Foreign device registration retry count.

Examples: bacnetRegisterAsForeignDevice("192.168.253.136:47808",1,1800sec,2min) bacnetRegisterAsForeignDevice("192.168.253.136",1,1800sec,120sec) bacnetRegisterAsForeignDevice("192.168.253.136",1,1800sec,120sec,3)

To unregister a Foreign Device, run this bacnetUnRegisterForeignDevice() function via Folio and that’s it.

BBMD Setup

The user can enter their bbmd entries in the bacnetRegisterAsBBMD function and then run the query in Folio → Launch.

The parameters are:

  • bbmdEntries: The BDT table entries in the BBMD. If multiple entries are required, they can add them as comma separated similar to the example below.

  • maxFdtEntries: maximal number of entries in FDT. Default value is 16. Range (1-65535)

  • executeWriteBDT: false- Do now allow Write BDT to overwrite current BDT entries, true- Allow Write BDT

  • twoHops: false- means direct broadcast, and true- denotes unicast method using another BBMD

Example: bacnetRegisterAsBBMD([[ip1,port1,subnet1],[ip2,port2,subnet2]], maxFdtEntries, executeWriteBDT, twoHops) bacnetRegisterAsBBMD([["192.168.253.1",47808,"255.255.255.0"],["192.168.253.111",47808,"255.255.255.0"]], 25, true, false)

To unregister as a BBMD, run this bacnetUnRegisterBBMD() function via Folio and that's it.

Point Types and Supported Objects and Properties

Below are links to the point types and supported objects and properties.

Other Details

Below are some other details about the BACnet client connector.

  • When discovering devices, the returned devices behind a router will not display their exact IP. This is a limitation with the BT BACnet Stack (BBS). However, they will still function.

  • If connecting to devices over VPN and if the network number is 0 of the network being connected to over VPN, the bacnetRoute tag will need to be added to the BACnet connector in order for it to communicate and for the connector to know where the device lives. The reason is because VPN doesn’t support broadcast messages such as ‘who-is’ and ‘i-am’. The bacnetRoute tag is a string type and it’s value is the router IP address.

  • It supports communication with multiple IP’s (network cards) when local bind address is set to 0.0.0.0 and standard port of 47808. If local bind address is configured to some specific IP and port other than 47808, then it can only communicate on that IP network card and port.

  • All projects on the same instance will share the same local bind address IP and Port.

  • Read Property Multiple (RPM) supports all/optional/required properties also.

  • Write Property Multiple (WPM) with specific Index of Array support added.

  • Proprietary Data types will be displayed as Raw data in FIN.

  • For intrinsic alarms, the corresponding Event Enrollment (EE) and/or point object must exist under the Equip Tree in the database. The EE would be mapped as a point under an equip just like all the other BACnet objects, which then allows the connector to subscribe to those notification events.

  • BACnet Client and Server must have different instance number if in the same instance of FIN.

  • BACnet Client and Server cannot communicate with each other on the same PC.

Setting BBS Manually

Below are the steps on how to configure the BT BACnet Stack (BBS) manually if using a FIN zip folder to run FIN on a Windows environment.

  1. First the user will unzip the FIN zip folder and place it where they would like to store it. In this case, we placed it under the FIN Framework folder.

  2. Then navigate to the “system” folder of the BBS Lib. The path to is something like this but with your version: C:\Program Files (x86)\FIN Framework\FIN Framework 5.1.4.142\lib\java\ext\BBS_LIB\system

  3. Copy the path to the “system” folder.

  4. Open Windows Notepad or some other note editor program.

  5. Select the “bbs_base.conf” file and drag and drop on the Notepad to view and edit it.

  6. On the 11th line that starts with ConfLoc, replace the C path up to the system location with what was copied. Make sure to add double backslashes. Should look something like this screenshot, but with your path.

  7. Once done, save the file.

  8. Start FIN and BACnet should now work.

Setting BBS Logging

Below are the steps on how to configure the BT BACnet Stack (BBS) logging for troubleshooting purposes.

  1. Navigate to the “system” folder of the BBS Lib. The path to is something like this but with your version: C:\Program Files (x86)\FIN Framework\FIN Framework 5.1.4.142\lib\java\ext\BBS_LIB\system

  2. Copy the path to the “system” folder.

  3. Open Windows Notepad or some other note editor program.

  4. Select the “bbs_base.conf” file and drag and drop on the Notepad to view and edit it.

  5. On the 12th line that starts with LogFile, replace “NONE” with what was copied. Then append BBS_LOG_FILE_Default.txt after it. Make sure to add double backslashes. Should look something like this screenshot, but with your path.

  6. Once done, save the file.

  7. Start FIN and now the BBS_LOG_FILE_Default.txt file should exist in that location and start logging information for troubleshooting.