BACnet Connector
- 1 BACnet Connector
- 1.1 Discover & Add BACnet Connector
- 1.2 Discover & Add Points
- 1.2.1 Sync Schedule Type
- 1.2.2 Discovery Filters
- 1.3 Time Stamp
- 1.4 Discover Settings
- 1.5 Connector Tools
- 1.5.1 Add
- 1.5.2 Edit
- 1.5.3 Delete
- 1.5.4 Clone
- 1.5.5 Ping
- 1.5.6 Debug
- 1.5.7 Enable/Disable
- 1.5.8 Write Level
- 1.5.9 BACnet Global Config
- 1.6 Foreign Device Setup
- 1.7 BBMD Setup
- 1.8 Point Types and Supported Objects and Properties
- 1.9 Other Details
- 2 Setting BBS Manually
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
For information on how to use this form read the following document: Batch Record Creator
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:
Discover the points on a connector
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)
Select the boolean schedule object in the discovered list
Click on the Sync Schedule Type button
Then in the Sync Schedule Type popup, the user would see the below properties:
Schedule type - here the user would select the type that the selected schedule object should be
Device identifier - the schedule object’s parent
object_identifier
is listedSchedule object - the schedule object’s
object_name
is listedDropdown 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)
Once the user applies the changes, they would re-discover the points and the schedule object should now be the correct type.
Now the user can import the schedule object into the database to use it.
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()
.That will return all the mapped schedule object conversions.
The user can then select which one they want to re-do or remove and delete them.
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:
The user would first select the BACnet connector they wish to discover points on.
Then select the Discovery Filters button to apply desired filter(s).
After that, discover the points using the Discover Points button.
If the Discovery Filters need to be modified after having discovered the points, open the Discovery Filters popup again and make the necessary changes.
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
Tool Icon: Located on the bottom of the tree view
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:
Bottom of the Tree View
Select on the [+] located on the lower left-hand side
It will display a prompt window Add BACnet Connector, where the user needs to fill out
To apply the changes, select on the Add button which will automatically update the connector tree and grid view
Grid View
Select on the Add button located on the bottom of the grid view
It will display a prompt window Add BACnet Connector, where the user needs to fill out
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
Bottom of Tree View
Select a connector that the user wants to edit
After the selection, click on the Edit Icon located on the lower left-hand side
This will display a prompt window Edit BACnet Connector, where the user can make changes to the connector
After makes changes, go ahead and select on the Apply button to add the changes
Grid View
Select a connector that the user wants to edit
After the selection, select on the Edit button on the bottom of the grid view
This will display a prompt window Edit BACnet Connector, where the user can make changes to the connector
After makes changes, go ahead and select on the Apply button to add the changes
Delete
There are two methods of deleting a connector:
Bottom of Tree View
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
If the user wants to delete multiple connectors, hold down the Alt button and click on another connector to highlight more of them
Select the [-] located on the lower left-hand side
The user will be displayed with the option Delete which they will need to select
The user will get a prompt window, where they need to confirm if they approve of the deletion
Once confirmed, the connector will be removed from both the BACnet connector tree and grid view
Grid View
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
If they want to delete multiple connectors, you can hold down the Alt button and click on another connector to highlight more of them
Select on the Delete button
The user will get a prompt window, where they need to confirm if they approve of the deletion
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
The user will need to select on a connector in the grid view
This will highlight the connector and enable the Clone button located on the bottom of the grid view
Select on the Clone button, which will display a prompt window Clone Options
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
The user will need to select on a connector in the grid view
This will highlight the connector and enable the Clone button located on the bottom of the grid view
Select on the Ping button, which will try to establish a connection
Immediately, the user will see the change in state (usually from Closed → Open)
Debug
Displays the debugging for a particular BACnet connection
The user will need to select on a connector in the grid view
This will highlight the connector and enable the Debug button located on the bottom of the grid view
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
The user will need to select on a connector in the grid view
This will highlight the connector and enable the Write Level button located on the bottom of the grid view
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.
List of point types are shown in this spreadsheet.
Supported objects are as shown in this spreadsheet.
Supported properties are as shown in this spreadsheet.
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.
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.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
Copy the path to the “system” folder.
Open Windows Notepad or some other note editor program.
Select the “bbs_base.conf” file and drag and drop on the Notepad to view and edit it.
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.Once done, save the file.
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.
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
Copy the path to the “system” folder.
Open Windows Notepad or some other note editor program.
Select the “bbs_base.conf” file and drag and drop on the Notepad to view and edit it.
On the 12th line that starts with
LogFile
, replace “NONE” with what was copied. Then appendBBS_LOG_FILE_Default.txt
after it. Make sure to add double backslashes. Should look something like this screenshot, but with your path.Once done, save the file.
Start FIN and now the
BBS_LOG_FILE_Default.txt
file should exist in that location and start logging information for troubleshooting.