Create BACnet Devices
Create BACnet Devices
We created this tool to make it easier for users to be able to create BACnet devices across their BACnet server database.
This tool is for the bacnetServer extension
Make sure that extension is enabled for the changes to work.
Also, make sure finBacnetExt is enabled in your Settings app as well.
How to use Create BACnet Devices
1. The user will select DB Builder app which is under the System Integrator section
2. Once inside, the user has to navigate to an equip(s) under the Equip Tree
3. Once the user has made a selection, the user will have to use the Tool button which is located on the bottom right
4. The user will be prompted with a pop-up called Tools where the user will have to navigate to the following: Create BACnet Devices
5. Once the tool is selected, a window of the tool will popup.
The following fields on the tool are below:
Selected Equips - This will display the id's of the equips selected. The user can also use tags or the Filter button to filter based on those tags.
Select BACnet Instance Start - The user gets to choose where they would like the instances to start at
Select BACnet MAC Address - The user gets to choose the starting MAC Address as well. It will be auto staggered by the tool.
Select Iteration - This will be the iteration between the bacnet devices (Note: Each point with history will create a virtual trend log object, which will count as an instance, so make sure to take that into consideration when selecting iteration)
BACnet Network Number - This will be auto populated based on the BACnet client local network number found in the BACnet Global Config tool.
Registered BACnet Servers - This will scan all projects configured as BACnet Servers on the network.
BACnet Server Listening On - This will be auto populated based on the BACnet client local bind address found in the BACnet Global Config tool.
Run Manual Configuration - If the user wishes to do all the configuration manually, they can do so by checking the box and hitting Apply without filling out the top menu portion.
6. If the user chose to manually configure BACnet devices, the following pop up will appear.
The following fields will show up in the manual window:
Equip,ID, Device Instance #,Mac Address - This portion will display all selected/filtered equipment. Allows the user to manually configure the device instance number and mac address for each individually.
BACnet Network Number -Â This will be auto populated based on the BACnet client local network number found in the BACnet Global Config tool.
Registered BACnet Servers - This will scan all projects configured as BACnet Servers on the network.
BACnet Server Listening On - This will be auto populated based on the BACnet client local bind address found in the BACnet Global Config tool.
Once the user has selected to auto or manually configure BACnet devices, they can click on the Apply button to execute the changes.
Automatic Scan Process
There is an automatic scan process that looks for equipment with the bacnetServerDeviceRef tag across the current project, and it automatically allocates instance numbers for each point under the matching equipment. The automatic numbering process will create virtual trend points for points that have histories, this will make the increment between points to be 2 in that case. In any numbering scheme used should be taken so that there is no conflict between bacnetServerInstance numbering within and across project databases.
Point instances must be unique within a device.
Device instances must be unique within a project (network).
The user is free to manually allocate the `bacnetServerInstance` tag as she/he wishes as long as there is no conflict generated.
Excluding Points
If the user wants to exclude some of the points that are under the equipment, the value of the tag "bacnetServerInstance" needs to be modified to be '-1'.
Connecting to BACnet Server
Once the changes are applied, the user can switch to another machine and add a BACnet device with the IP address, device instance number, network number, and mac address. It will work like any other BACnet device. Or discover them on the network.
Edit existing configurations
The tool auto recognizes if there are existing configurations and applies them in the tool based on what is selected
This applies only to BACnet network number, BACnet Server Listening On, and the manual window.
If the user needs to make changes to the current configurations already setup
They can either re-run the auto-configuration again which will override the existing configurations or they can manually configure each device in the manual window.Â
What happens in the background
Once the tool is executed, the following are being implemented:
bacnetServerDevice - A bacnetServerDevice record is being created for each equip(s)
bacnetServerDeviceRef - Each equip gets a bacnetServerDeviceRef for the corresponding bacnetServerDevice created
bacnetServerInstance - This number property tag is added to bacnetServerDevice record and points
bacnetServerMacAddress - This number property tag is added to the bacnetServerDevice record
Discover Troubleshooting
Run bacnetServerSyncDevices() to make sure everything is synced
Run bacnetServerDeviceList() to get a list of all the available devices
After checking everything and if any changes were made, restart the service
Then try to discover from another BACnet tool/machine to see if you get the data
Make sure the correct device info is being added.
Note: Make sure there is no firewall blocking any of the communications. Disable firewall and see if it works.
If disabling firewall makes it work, create a new inbound and outbound rules for UDP port 47808. This would allow BACnet to broadcast packages on UDP port 47808. This would be a network issue, not a FIN issue. Other devices should now see the 'i am' response to 'who is' request.
If removing bacnetServerInstances manually through db builder, run this query in folio to clear those out.
The tool should now run that in a newer version after v090:Â
readAll(bacnetServerDevice).findAll(x=> bacnetServerDeviceList().colToList("bacnetServerDeviceRef").index(x->id) == null).finHardDelete