BACnet performance issue after installing or upgrading to 1.7.1 and later

Issue

After upgrading to version 1.7.1 or later, a performance issue is seen when reading BACnet values from BACnet/IP devices.

The CPU usage on an Automation Server is continuously high.

Product Line

SmartStruxure Solution

Environment

Detected in version 1.7.1

Automation Server

Enterprise Server

BACnet/IP

Cause

A new "BACnet ReadPropertyMultiple Service" has been included from version 1.7.1. Data retrieval from devices that support ReadPropertyMultiple service and do not support the COV (Change of Value) service has been optimized. The resulting improved polling behaviour will particularly benefit graphics performance for ReadPropertyMultiple.

If a site is upgraded to version 1.7.1 where this improved communication service gets used automatically, it is possible that the server CPU usage increases. This issue will only be seen if the third party device does not support COV subscriptions, does support ReadPropertyMultiple and a large number of values are being requested from the same device e.g. using bindings. This is a result of much more data being requested by the Server in the same time period.

 

From Release Notes version 1.7.1
3.4.4 Improved polling performance

Data retrieval from devices that support ReadPropertyMultiple service and do not support the COV (Change of Value) service has been optimized. The resulting improved polling behavior will particularly benefit graphics performance for ReadPropertyMultiple.”

Resolution

1. Select the BACnet interface where the performance issue is seen

2. Select the advanced properties for the interface

3. Change the “Minimum polling interval for local IP networks (ms) to “3000”

4. In case the BACnet interface is configured in an Automation Server, test other values in step 3 until the CPU usage is stabilized

 

You can check the AS CPU usage, by dragging the CPU usage property to the watch window in WorkStation

 

NOTE
It is also worth setting the MSTP polling to 3000mS, to ensure third party BACnet Devices that do not support COV subscriptions, are not overloaded.
Without this value set, it has occationally been seen that Bacnet devices go offline or value readings stop updating the values.