Subscription $819/yr Pay an annual fee to use the software. Support & Maintenance is included. Add to Cart Added

Your cart cannot contain both a Subscription and a Perpetual product.

Please modify your cart to add this license type.

Add to Cart
Perpetual $2457 Pay a one-time product list price. Mandatory year-one Support & Maintenance Agreement is included. Add to Cart Added

Your cart cannot contain both a Subscription and a Perpetual product.

Please modify your cart to add this license type.

Add to Cart

Product Overview

The BACnet/IP driver provides an interface to connect, monitor, and control building automation devices—providing real-time data to a myriad of software applications, from building and energy management systems to enterprise IT networks. It provides connectivity to equipment using the BACnet protocol over IP (often referred to as BACnet/IP or BACnet Annex J). Devices on other BACnet network types may be accessed using BACnet gateway devices.

  • Integrates BACnet data into OPC-compliant HMI/SCADA applications
  • Enables BACnet data to be accessed by leading automation, HMI/SCADA, ERP, Big Data, asset management, and analytics packages via OPC, proprietary protocols, and IT protocols (including MQTT, REST, ODBC, and SNMP)
  • Supports Automatic Device Discovery
  • Supports Command Priority, which prioritizes write requests
  • Supports Application Protocol Data Unit (APDU), which affects message segmentation
  • Includes Automatic Tag Generation through device interrogation
  • Supports the following Standard Objects, including most of the required properties: Accumulator, Analog Input, Analog Output, Analog Value, Averaging, Binary Input, Binary Output, Binary Value, Calendar, Command, Device, Event Enrollment, File, Group, Life Safety Point, Life Safety Zone, Loop, Multi-State Input, Multi-State Output, Multi-State Value, Notification Class, Program, Schedule, and Trend Log
  • Supports Confirmed and Unconfirmed Event Notifications for both intrinsic and algorithmic notifications for several Event States, including Change of Value, Change of State, Out of Range, Unsigned Range, and Command Failure
  • BACnet/IP (Annex J)
  • English
  • German
  • Japanese
  • Simplified Chinese
  • DDE Format CF_Text and AdvancedDDE
  • NIO Interface for iFIX
  • OPC .NET Service (OPC .NET) Version 1.00
  • OPC Alarms and Events (OPC AE) Version 1.10
  • OPC Data Access (OPC DA) Versions 1.0a, 2.0, 2.05a, and 3.0
  • OPC Unified Architecture (OPC UA) Clients
  • SuiteLink and FastDDE for Wonderware



  • Fixed an issue decoding a BACnet double received from a BACnet device.



  • Increased the supported values for Max Items per Request and set the default to 64.
  • Updated Tag Import Group default values to better represent what customers want.
  • Devices that are added through Device Discovery are now named based on the discovered device’s name, instead of putting that in the description.



  • Resolved an issue where the driver, when set to communicate through a remote BBMD, could fail to send a request to the BBMD to register as a foreign device.



  • Fixed an issue that could crash the server runtime.



  • Fixed an issue that could cause server instability.



  • Added Chinese language support.



  • Fixed an issue where COV mode was changed to polling after a DNR response from the device that resulted in multiple ReadPropertyMultiple requests being issued with no SubscribeCOV request issued. The driver now sends a SubscribeCOV request for the objects that were using COV before the connection was interrupted.



  • Device discovery is now accessible as a right-click option on a BACnet channel in the Project Tree View.
  • Network Settings, Foreign Device, and Advanced Settings are now consolidated into a new Protocol Settings group.
  • The Allow COV Notifications with Empty NPDU property has changed to the COV Notifications property with options: Require NPDU and Allow Empty NPDU.
  • APDU, Command, and COV settings are now consolidated into a Protocol Settings group.
  • COV Resubscription Interval (HH:MM:SS) has been changed to Resubscription Interval (seconds).
  • Increased BACnet device discovery maximum timeout from 30s to 300s.
  • Added German language support.
  • Added Japanese language support.



  • Fixed an issue where the driver could incorrectly report bad quality for tags in response to a device's BACnet-ComplexACK to the driver's ReadPropertyMultiple request.
  • Fixed an issue introduced in the 5.18 release, where channel-level Device Discovery did not discover all the devices on a network.
  • Resolved an issue were the driver incorrectly triggered the error state if it received a single error to a ReadPropertyMultiple request. The error state should only be set if the device is not responding.
  • Enhanced the driver to support the Accumulator object.
  • Added support for individually assigning a BACnet command priority to tags from a connected BACnet device. Previous versions allowed only one command priority to be used for all tags from a BACnet device.
  • Added support for Confirmed and Unconfirmed Event Notifications for several Event States; including Changes of Value, Changes of State, Out of Range, and Unsigned Range.
  • Added support for IBM/Microsoft DBCS character set.
  • Included a Protocol Implementation Conformance Statement (PICS), documenting current BACnet supported properties and services.
  • Assigned BACnet Vendor Identification Number 873, used in network WhoAmI communications.



  • Fixed an issue where automatic tag generation failed if the device did not support segmentation. This issue was introduced in KEPServerEX version 5.15.
  • Enhanced the driver to support manual configuration of the BACnet MAC address. This allows the driver to communicate through a gateway to other BACnet network types.



  • Added support for Weekly, Exception, and Calendar Objects. These objects are represented as custom formatted strings that can be read and written. For details and VB code samples, refer to the BACnet/IP Driver help file.
  • Fixed an issue that allowed array element tags to use a zero index. This is no longer allowed.
  • Increased the maximum device limit from 100 to 128.
  • Fixed a typo in the Event Log message for a failed COV subscription.
  • Fixed a UI issue where the Import File field was not disabled when the Import Method parameter was set to Device.
  • Fixed an issue where the driver could improperly convert integer values to floats when reading and writing.
  • Added support for BACnet Broadcast Management Devices (BBMD) to Device Discovery at the channel level.
  • Fixed an issue where communications would fail after initial Automatic Tag Generation with a BBMD.
  • Added support for a new discovery scope to send a Who-is/I-am to a specified IP address.


  • Updated to allow the PresentValue Property Tag of the Schedule Object to be set to Read/Write.


  • Fixed an issue where tags have bad quality if the response to a ReadPropertyMultiple command has multiple properties listed under a single object identifier.
  • Added support for discovering devices on a BACnet network.


  • Added support for ISO 10646 (UCS-2) and ISO 8859-1 (Latin1) character sets.
  • Added a number of object properties to meet the 2008+ BACnet specification, in addition to support for simple array properties (arrays of primitive BACnet data types).
  • Increased the maximum number of channels from 32 to 128.
  • Added enumerated values and corresponding strings to support approximately forty new BACnet Error codes.
  • Added a new error class.
  • Fixed an issue wherein tags with a default client access of Read Only could not be set to Read/Write, even if Write access was allowed.
  • Addendum "Add-2004-135m" specifies a small change to the way segment ACK timeouts function. Before the change, Addendum timing started at the beginning of the Request window (during which one or more segments were sent). In some cases, this caused unnecessary timeouts for larger window sizes.
  • Now, the timer starts after the first segment is sent, after all the segments in the window (1 or more) are sent, or after the last segment is sent to the device.
  • Modified BACnetNetworkLayer to be able to route COV notifications from a device on a different BACnet network where NPDUs do not contain the source address. Although the behavior does not appear to meet the BACnet spec, this precedent has been set by the support of other vendors. A channel property was added to enable/disable this setting. It is disabled by default (since it could degrade performance if the BACnet network has a large volume of broadcast messages).
  • Modified the driver so that duplicate Device IDs are not allowed on a channel.
  • Increased the COV re-subscription interval maximum value from 1 hour to 24 hours.
  • Added an option for ALC devices to use a Subscriber Process Identifier (SPID) of 0. ALC devices consider all subscriptions with an SPID of 0 to be 1 subscription.
  • Added an option to wait for the device to acknowledge COV cancellations. This prevents the Runtime from shutting down until all COV subscriptions have been cancelled.


  • Fixed issue where the driver did not ask for one of the object names listed in the device when requesting Auto Tag Generation one item at a time. This name is used when "Use Object Name for Tag Group Names" is selected under the "Tag Import" tab under "Device Properties".


  • Modified driver to not repeatedly request the "Segmentation Supported" property from a device if the device returns an error to that request.
  • Fixed ATDBG when the device responds with an error to the Read Property: ALL command.
  • Corrected a problem with parsing a NotificationClass Object. This was causing ATDBG to fail with an internal test device, and generating default tags.
  • Resolved issue with permanent COV subscriptions.
  • Enhanced COV Subscription Request handling to improve performance



  • Fixed channel wizard issue that prevented user from moving to next page, incorrectly indicating that another channel was configured with same NIC and port.
  • Fixed an issue with processing "read property multiple" responses from certain brands of hardware, which resulted in toggling quality of all items associated with an object and repeated "device not responding" errors.

Supported Protocol Details

The official BACnet specification "ANSI/ASHRAE Standard 135-2001 BACnet A Data Communication Protocol for Building Automation and Control Networks" describes all aspects of the BACnet protocol. When using Kepware's BACnet/IP device driver, it is recommended that users be familiar with the standard BACnet objects and properties discussed in Clause 12 and the BACnet/IP particulars outlined in Annex J. The specification is available along with many other useful resources through the American Society of Heating, Refrigerating and Air-Conditioning Engineers, Inc. (ASHRAE) or the official BACnet website at

The Protocol Implementation Conformance Statement (PICS) is available in the BACnet/IP product manual.