(Optional) Setting up BACnet (Release 3.1)

BACnet Router and Server Configuration is available with SmartServer 2.5 and higher.

For SmartServer 3.2 and higher, see (Optional) Add a BACnet Interface.

You can use the SmartServer as a BACnet server, BACnet client, and a BACnet router.  Using the SmartServer BACnet Server, you can access the SmartServer from a BACnet workstation and other BACnet client applications.  Using the SmartServer BACnet Client, you can interface with BACnet/IP and BACnet/MS-TP devices and interact with those devices using the SmartServer CMS and other IAP client applications.  An external BACnet/IP to BACnet/MS-TP router is required for any BACnet/MS-TP devices.  Using the SmartServer BACnet Router, you can route BACnet communication between one or more BACnet FT channels and up to two BACnet/IP over Ethernet channels.  With the BACnet Router, you can interact with BACnet FT devices using a BACnet workstation and other BACnet client applications on one of the Ethernet channels.

This section covers the following topics:

Enabling BACnet

You can enable and disable BACnet support in the SmartServer.  If you enable BACnet support, you can optionally enable or disable a BACnet diagnostic port and you can configure the IP interfaces used for BACnet.  The diagnostic port can be used by BACnet diagnostic tools to monitor BACnet status.  To enable the BACnet Server, BACnet Client, and BACnet Router, follow these steps:

  1. Open the SmartServer Configuration page as described in Configure Your SmartServer.

  2. Click the BACnet tab.



  3. If there is no checkmark in the Enable BACnet Client, Router, and Server box, click the box so the checkmark appears.

  4. Click the Enable BACnet Diagnostic Port box to enable or disable the diagnostic port (this option was added in SmartServer 2.6).

  5. Set a unique UDP port number and BACnet network number for each interface listed in the interface table.  In the above example, the three interfaces are configured to use BAC0, BAC1, and BAC2 as the UDP port numbers and to use network numbers 112, 111, and 113.  You can change these numbers to any value within the ranges listed in the heading with the exception that you cannot assign the same port number or the same network number to two different interfaces.

  6. Click the Update button.

Configuring the BACnet Server

You can use the SmartServer BACnet Server to provide a BACnet interface to datapoints on field devices you have provisioned with the SmartServer.  You can also use the SmartServer BACnet Server to provide an interface to intrinsic reporting for the BACnet objects configured in the server.  In addition, you can use the BACnet Server to interface with the IAP scheduler and calendar using BACnet Scheduler and BACnet Calendar objects.  You can access the interfaces published by the BACnet server to interact with your field devices from a BACnet workstation or other BACnet client.

Using the SmartServer BACnet Server, you can provide a BACnet interface to any field devices available on your SmartServer, independent of the protocols used to communicate with the devices.  As a result, you can provide a BACnet interface to LON, Modbus, and IOX devices that you have provisioned on your SmartServer.  You can also provide a customized BACnet interface to BACnet devices that you have provisioned on your SmartServer.

The BACnet Server automatically creates BACnet Scheduler and BACnet Calendar objects for any schedules defined by IAP applications or the CMS Calendar widget.  To provide a BACnet interface to any devices available on your SmartServer you must define the mapping of the datapoint XIF names for a device interface defined on your SmartServer to BACnet objects to be published by your SmartServer.  You can define a BACnet mapping to any datapoint for a device using any protocol supported by the SmartServer.  To create a BACnet type mapping definition for a device interface, create a BACnet type mapping file for the interface as described in the next section.  You can create BACnet type maps for multiple device interfaces by creating a BACnet type mapping file for each.

Creating a BACnet Type Map (BTM) File

The name of the BACnet Type Map file, without the .BTM extension, specifies the name of the device interface (XIF) to be mapped.  For example, BACnet type map files named 6kEvbMultiSensor.btm and Ocean Controls KTA-275 RTU.btm define type maps for the 6kEvbMultiSensor and Ocean Controls KTA-275 RTU device interface (XIF) definitions.  The file extension for a BACnet type map must be .btm.  You cannot use a compound extension such as .btm.csv.

A BACnet type map file has the following three sections.

  • A file type specification that identifies the file as a BACnet type map.
  • A product details section that specifies the version and XIF name (repeated from the filename) for the BACnet type map.
  • A datapoint list that specifies the XIF datapoints to be mapped to the BACnet Server. The first line of the datapoint list is a header with column headings for a datapoint list.

The following figure illustrates the top portion of a BACnet type map file.

#filetype,bacnet_type_map
#version,v6.0.0
#product_name,6kEvbMultiSensor
Block Type,Block Handle,Point Name,bacnet_type,Instance,Name,Description,Units,SNVT Field,Type Definition

The following sections describe the BACnet type map file sections:

File Type Specification

The file type specification for a BACnet type map file is the following:

#filetype,bacnet_type_map

If you open a CSV file with this line in Excel, it is displayed as two cells, one with #filetype and one with bacnet_type_map.

XIF Details

The XIF details identify the device interface (XIF) mapped by the mapping file.  The XIF details specification has the following contents:

#version,<Version>
#product_name,<Product Name>

If you open a CSV file with these lines in Excel, each line is displayed as two cells.

Specify the details as follows:

  • <Version> â€“ (optional) version of the mapped device interface (XIF).
  • <Product Name> – (required) the device interface (XIF) name–this must be the same as the file name without the extension.

Following is an example XIF details specification for a 6K EVB MultiSensor:

#filetype,bacnet_type_map
#version,v6.0.0
#product_name,6kEvbMultiSensor

Following is an example XIF details specification for an Ocean Controls KTA-275:

#filetype,bacnet_type_map
#version,v1.0.0
#product_name,Ocean Controls KTA-275 RTU

Datapoint List

The datapoint list that specifies the XIF datapoints for the mapped device interface (XIF).  The first line of the datapoint list is a header with column headings for a XIF datapoint list.  Following is an example datapoint list with a single XIF datapoint defined:

Block Type,Block Handle,Point Name,bacnet_type,Instance,Name,Description,Units,SNVT Field,Type Definition
TempSensor,0,nvoHVACTemp,AV,1,SpaceTemp,Temperature,DegC,value,

The following table describes the column contents for the datapoint list: 

Parameter                Required / OptionalDescription
Block TypeRequiredThe block XIF name for the block containing the mapped datapoint as defined by the XIF definition.
Block HandleRequired

The block XIF index for the block containing the mapped datapoint as defined by the XIF definition.  The block index is 0 for the first block of a given type.

Point NameRequiredThe datapoint XIF name for the datapoint to be mapped as defined by the XIF definition.
bacnet_typeRequired

The BACnet object type to be published for the mapped datapoint by the BACnet Server.  The supported BACnet object types are AI, AO, AV, BI, BO, BV, MSI, MSO, and MSV. LON and Modbus inputs are considered BACnet outputs (AO, BO, MSO). LON and Modbus outputs are considered BACnet inputs (AI, BI, MSI). 

InstanceRequired

The BACnet object instance number to be published for the BACnet object by the BACnet Server.

Name

Required

The BACnet object name property to be published for the BACnet object by the BACnet Server.

DescriptionOptionalThe BACnet object description property to be published for the BACnet object by the BACnet Server.  
UnitsOptional

The BACnet units property to be published for the BACnet object by the BACnet Server.  Leave as blank ( ,, ) for BI, BO, BV, MSI, MSO, MSV BACnet objects.   A value is optional for AI, AO, and AV BACnet objects.  BACnet unit values are listed in the BACnet Units lists below.

SNVT FieldRequired

The field name for a field within the mapped datapoint.  Set to value for scalar datapoints.  Set to the datapoint field name for structured datapoints.

Type DefinitionOptionalThe IAP type for the XIF datapoint.  This parameter can be used to supply an IAP type definition for a multi-state BACnet object (MSI, MSO, or MSV).  If an enumeration type is supplied for a multi-state datapoint, the SmartServer translates BACnet numeric state values to the corresponding state text names defined in the IAP type definition.  BACnet state values of 1 to 126 are mapped to IAP enumeration values of 1 to 126.  BACnet state values greater than 126 are mapped to IAP enumeration values of 127 + <BACnet state value>.  For example, BACnet state value 127 maps to IAP enumeration value 0 and BACnet state value 126 maps to IAP enumeration value -1.  The SmartServer BACnet Server maps the IAP enumeration text names to BACnet state text properties using the IAP enumeration value as an index into the IAP enumeration definition.

BACnet Units

    
square-meters
square-feet
milliamperes
amperes
ohms
volts
kilovolts
megavolts
volt-amperes
kilovolt-amperes
megavolt-amperes
volt-amperes-reactive
kilovolt-amperes-reactive
megavolt-amperes-reactive
degrees-phase
power-factor
joules
kilojoules
watt-hours
kilowatt-hours
btus
therms
ton-hours
joules-per-kilogram-dry-air
btus-per-pound-dry-air
cycles-per-hour
cycles-per-minute
hertz
grams-of-water-per-kilogram-dry-air
percent-relative-humidity
millimeters
meters
inches
feet
watts-per-square-foot
watts-per-square-meter
lumens
luxes
foot-candles
kilograms
pounds-mass
tons
kilograms-per-second
kilograms-per-minute
kilograms-per-hour
pounds-mass-per-minute
pounds-mass-per-hour
watts
kilowatts
megawatts
btus-per-hour
horsepower
tons-refrigeration
pascals
kilopascals
bars
pounds-force-per-square-inch
centimeters-of-water
inches-of-water
millimeters-of-mercury
centimeters-of-mercury
inches-of-mercury
degrees-celsius
degrees-kelvin
degrees-fahrenheit
degree-days-celsius
degree-days-fahrenheit
years
months
weeks
days
hours
minutes
seconds
meters-per-second
kilometers-per-hour
feet-per-second
feet-per-minute
miles-per-hour
cubic-feet
cubic-meters
imperial-gallons
liters
us-gallons
cubic-feet-per-minute
cubic-meters-per-second
imperial-gallons-per-minute
liters-per-second
liters-per-minute
us-gallons-per-minute
degrees-angular
degrees-celsius-per-hour
degrees-celsius-per-minute
degrees-fahrenheit-per-hour
degrees-fahrenheit-per-minute
no-units
parts-per-million
parts-per-billion
percent
percent-per-second
per-minute
per-second
psi-per-degree-fahrenheit
radians
revolutions-per-minute
currency1
currency2
currency3
currency4
currency5
currency6
currency7
currency8
currency9
currency10
square-inches
square-centimeters
btus_per-pound
centimeters
pounds-mass-per-second
delta-degrees-fahrenheit
delta-degrees-kelvin
kilohms
megohms
millivolts
kilojoules-per-kilogram
megajoules
joules-per-degree-kelvin
joules-per-kilogram-degree-kelvin
kilohertz
megahertz
per-hour
milliwatts
hectopascals
millibars
cubic-meters-per-hour
liters-per-hour
kilowatt-hours-per-square-meter
kilowatt-hours-per-square-foot
megajoules-per-square-meter
megajoules-per-square-foot
cubic-feet-per-second
watts-per-square-meter-degree-kelvin
percent-obscuration-per-foot
percent-obscuration-per-meter
milliohms
megawatt-hours
kilo-btus
mega-btus
kilojoules-per-kilogram-dry-air
megajoules-per-kilogram-dry-air
kilojoules-per-degree-Kelvin
megajoules-per-degree-Kelvin
newton
grams-per-second
grams-per-minute
tons-per-hour
kilo-btus-per-hour
hundredths-seconds
milliseconds
newton-meters
millimeters-per-second
millimeters-per-minute
meters-per-minute
meters-per-hour
cubic-meters-per-minute
meters-per-second-per-second
amperes-per-meter
amperes-per-square-meter
ampere-square-meters
farads
henrys
ohm-meters
siemens
siemens-per-meter
teslas
volts-per-degree-Kelvin
volts-per-meter
webers
candelas
candelas-per-square-meter
degrees-Kelvin-per-hour
degrees-Kelvin-per-minute
joule-seconds
radians-per-second
square-meters-per-Newton
kilograms-per-cubic-meter
newton-seconds
newtons-per-meter
watts-per-meter-per-degree-Kelvin

BACnet Units #if ( BACNET_PROTOCOL_REVISION >= 17 )


per-mille
grams-per-gram
kilograms-per-kilogram
grams-per-kilogram
milligrams-per-gram
milligrams-per-kilogram
grams-per-milliliter
grams-per-liter
milligrams-per-liter
micrograms-per-liter
grams-per-cubic-meter
milligrams-per-cubic-meter
micrograms-per-cubic-meter
nanograms-per-cubic-meter
grams-per-cubic-centimeter
becquerels
megabecquerels
gray
milligray
microgray
sieverts
millisieverts
microsieverts
microsieverts-per-hour
decibels-a
nephelometric-turbidity-unit
pH
grams-per-square-meter
minutes-per-degree-kelvin
ohm-meter-squared-per-meter
ampere-seconds
volt-ampere-hours
kilovolt-ampere-hours
megavolt-ampere-hours
volt-ampere-hours-reactive
kilovolt-ampere-hours-reactive
megavolt-ampere-hours-reactive
volt-square-hours
ampere-square-hours
joule-per-hours
cubic-feet-per-day
cubic-meters-per-day
watt-hours-per-cubic-meter
joules-per-cubic-meter
mole-percent
pascal-seconds
million-standard-cubic-feet-per-minute
standard-cubic-feet-per-day
million-standard-cubic-feet-per-day
thousand-cubic-feet-per-day
thousand-standard-cubic-feet-per-day
pounds-mass-per-day
millirems
millirems-per-hour

BACnet Type Map (BTM) File Examples

Example 1 â€“ 6kEvbMultiSensor

Following is an example BACnet type map file for a LON 6kEvbMultiSensor example.

#filetype,bacnet_type_map
#version,v0.0.0
#product_name,6kEvbMultiSensor
Block Type,Block Handle,Point Name,bacnet_type,Instance,Name,Description,Units,SNVT Field, Type Definition
TempSensor,0,nvoHVACTemp,AI,1,Temperature,Temperature Sensor,DegC,value,
LightSensor,0,nvoLuxLevel,AI,2,Light Level,Light Level Sensor,Luxes,value,
Switch,0,nvoSwitch,MSI,3,Switch 1 State,Switch 1 Reported State,,state,UNVT_switch_state
Switch,0,nvoSwitch,AI,4,Switch 1 Level,Switch 1 Reported Level,Percent,value,
Switch,0,nviSwitchFb,MSO,5,Switch 1 State FB,Switch 1 State Feedback,,state,UNVT_switch_state
Switch,0,nviSwitchFb_1,AO,6,Switch 1 Value FB,Switch 1 Level Feedback,Percent,value,
Lamp,0,nviValue,MSO,7,Lamp 1 State,Lamp 1 State Control,,state,UNVT_switch_state
Lamp,0,nviValue,AO,8,Lamp 1 Level,Lamp 1 Level Control,Percent,value,
Lamp,0,nvoValueFb,MSI,9,Lamp 1 State FB State,Lamp 1 State Feedback,,state,UNVT_switch_state
Lamp,0,nvoValueFb,AI,10,Lamp 1 Level FB Value,Lamp 1 Level Feedback,Percent,value,

Example 2 â€“ Ocean Controls KTA-275 RTU

Following is an example BACnet type map file for a Modbus Ocean Controls KTA-275 RTU.

#filetype,bacnet_type_map
#version,v0.0.0
#product_name,Ocean Controls KTA-275 RTU
Block Type,Block Handle,Point Name,bacnet_type,Instance,Name,Description,Units,SNVT Field, Type Definition
block,0,Light,AI,1,Light Level,Main Office Light Level,luxes,value,

Configuring the BACnet Client

You can use the SmartServer BACnet Client to interface with BACnet/IP and BACnet/MS-TP devices and interact with those devices using the SmartServer CMS and other IAP client applications.  An external BACnet/IP to BACnet/MS-TP router is required to communicate with any BACnet/MS-TP devices.  See (Optional) Add a BACnet Interface in SmartServer Getting Started for a description of the procedures to define, discover, and provision BACnet devices.

Configuring the BACnet Router

You can use the SmartServer BACnet Router to interact with BACnet FT devices using a BACnet workstation and other BACnet client applications on one of the Ethernet channels.  BACnet FT devices communicate on a free topology (FT) twisted pair channel using the BACnet/IP protocol with a LON/IP transport.  BACnet FT devices typically also have a LON FT interface.  If your BACnet FT devices also have a LON FT interface, the procedure that you use to configure the BACnet Router depends on the LON management mode you are using.  The two LON management modes are LON device management mode (DMM) and LON independent management mode (IMM).  For LON DMM, your LON network is managed by the SmartServer.  For LON IMM, your LON network is management by another tool such as the IzoT Commissioning Tool (CT).  The next two sections describe the procedures for using the BACnet Router with LON DMM and LON IMM.

Using the BACnet Router with LON Device Management Mode (DMM)

You can use the SmartServer BACnet Router to interface a BACnet workstation or other BACnet client application with BACnet FT devices managed using LON DMM.  When using LON DMM, you can use either or both of the SmartServer Ethernet interfaces, but you can only use the BACnet Router with one FT interface.

To configure BACnet Routing for LON DMM, follow these steps:

  1. Enable BACnet as described in EnablingBACnet.  Add a port and network number for one or both of your Ethernet interfaces and one of your LON interfaces if not specified.

  2. Open the SmartServer Configuration page as described in Configure Your SmartServer.  Click the BACnet tab.  Clear the Overrride Standard (10.<domain>.<subnet>.<node>) option inLON/IP Class A Network and then click the Update button.

  3. Reboot you SmartServer as described in Rebooting Your SmartServer IoT.

  4. Define your BACnet FT device type as described in Defining Device Types.

  5. Create your BACnet FT device as described in Discovering, Defining, or Importing Devices.

  6. Provision your BACnet FT device as described in Provisioning, Deprovisioning, and Replacing Devices.

  7. The BACnet Router and your BACnet FT device will now be visible to BACnet/IP workstations or browsers.  For example, a BACnet router and a BACnet FT device will appear as follows in the BACnet browser:

Specifying a LON Domain for LON DMM

LON IP address allocations must be unique within an intranet for LON DMM. To provision a system to use a specific domain, follow the steps below.

  1. Open the SmartServer console as described in the section Connecting to Your SmartServer (serial or SSH) as the apollo user.

  2. Enter the following command:
    sudo nano /etc/supervisor/conf.d/echltx.conf

  3. Add the following directives:
    • domainId=AB (where AB is any two-digit hex code)
    • domainLength=1

  4. Save and exit using CTRL-X and follow the prompts.

  5. To make this domain persist across apollo-reset operations, enter the following command:
    sudo cp /etc/supervisor/conf.d/echltx.conf /etc/supervisor/conf.d/echltx.template 
         

Using the BACnet Router with LON Independent Management Mode (IMM)

To configure BACnet Routing for SmartServer IoT Independent Management Mode (IMM) for use with IzoT CT, perform the following steps:

  1. Switch to LON Independent Management Mode (IMM) as described in (Optional) Switch From LON Management.

  2. On the Features configuration page, in the RNI Configuration table, check Enable  for lon0 and click the Update button.  If you have multiple network interfaces, you can also use an internal IP-70 RNI.

  3. Make a note of the port specified for the RNI (typically 1628).

  4. Enable BACnet as described in EnablingBACnet.  Add a port and network number for one or both of your Ethernet interfaces and one of your LON interfaces if not specified.

  5. Open the SmartServer Configuration page as described in Configure Your SmartServer.  Click the BACnet tab.  Clear the Overrride Standard (10.<domain>.<subnet>.<node>) option inLON/IP Class A Network and then click the Update button.

  6. Reboot you SmartServer as described in Rebooting Your SmartServer IoT.

At a minimum, you need a router to be set up between the external FT channel and the internal IP-70 channel and commissioned for BACnet routing to work. The steps that follow provide this minimal configuration.

  1. Create an RNI entry in LonWorks Interfaces control panel applet on your computer using the SmartServer IPv4 address and the port you noted from the Features configuration page.

  2. Create an IzoT CT drawing using the RNI as the network interface.

  3. Once the drawing is created, it will have the RNI connected to the FT channel.

  4. Create a new IP-70 channel.

  5. Create a router between the FT channel and the IP-70 channel.

  6. Commission the router using the Service/Connect button for the specific U60 router on the System configuration page.

  7. Create the required BACnet FT device, attached to the FT channel, creating a new device template as you proceed.

  8. Commission the device, loading the application as required.

The BACnet Router and the BACnet FT device will now be visible to BACnet/IP workstations and other BACnet client applications as well as to the LON infrastructure.