Troubleshooting BACnet errors can be challenging. When data is acquired via the CXS BACnet Server you can use the System Management Console to diagnose the source of the error.
There a three destinct types of errors when communicating with BACnet devices:
- Communication errors
The BACnet device cannot be discovered, accessed or the device doesn’t respond, is switched off or misconfigured - Device reported errors
Communication is good but the device reports errors to specific requests, objects or properties - Local application errors
Typically data conversion errors, wrong mapping of data types, misconfigured client
Identifying the error types is the first step to fixing the issues. Open the SMC (ArchestrA System Management Console) expand the branch Operations Integration Server Manager and locate the ConneXSoft BAcnet Server. The device group branch displays states and incoming data while the client groups display data as sent to the client (on change only).
In this example we created several error conditions:
We see that the device Dev602000 is the only device with 0 errors.
We analyze Dev80104 first. The red icon and the fact that the number of errors (“Errors”) is equal to the number of active items (“Active Items”) indicates a communication issue:
A typical scenario for communication errors is the bad quality for all items except system items. In this case check the state of the corresponding device in the device group branch.
Example: Disconnected device
We see that all items have bad quality updated with the current timestamp. In this specific case we also see that originally there were initial values. This indicates that some time in the past there was communication established to this device and the current disconnection could be a temporary situation. Additional analysis in the message view:
We see the message stays “PENDING” for a long time (waiting for a response) and that it is marked with “Result”: -15 (timeout). Verify that this message is actually targeting Dev80104:
You can also find associated error messages in the logger (timeout):
Fixing the error:
Check that the device is:
- online
- powered on
- in the runtime state
- physically connected to the right network
Check in the BACnet Server configuration:
- Is the device id correct or did it change?
- Does the device require pre configured addresses due to subnets and missing BBMD routing
- Are BBMD routers active to access subnets
Note: If the client application requests system items there will be a yellow error icon for this device since the system items will have good quality. In this case the error count will differ from the active item count by the number of system items.
Device reported errors:
In a mixed scanario where you have runtime items some of good and some of bad quality in the same device you can assume that the communication is established but the device reports errors for some items:
The majority of items (140) is marked with good “Quality” (OPC quality 0xC0) and 4 items are marked with bad “Quality” (OPC quality 0x00). The items marked as bad are acquired via message IDs: 1000280 and 1000280. Open the message branch:
Message ID 1000280 is a “BACnet Message Type” COV (change of value) message containing an “Error class” and “Error code”. The “Error class” and “Error code” values are BACnet defined enumerations returned from the device. Please see the list at the end of this post to identify the error situation.
The Message ID 100024B is a MR (multiple read message) containing 10 items of which 2 have bad quality:
This verifies that the communication to the device is working acquiring multiple values. But certain objects (or maybe optional properties) do not exist.
Fixing the error:
Check if:
- the device contains the BACnet object and/or property
- the client application uses the correct object id and/or property id
Local application errors
Local application errors occur in the last step passing the data to the client and is typically a conversion error.
In this example the “Value” cannot be converted to the target type (value is not a number). The communication is good the object and property exists but the value is unusable. The reason could be in the device (sensor out of service) or in the client (wrong datatype).
Fixing the error:
- Check device/sensor status
- Check client application value type
List of CXS BACnet Server reported error codes:
error classes:
device 0
object 1
property 2
resources 3
security 4
services 5
vt 6
communication 7
error codes:
other 0
formerly: authentication failed 1
configuration in progress 2
device busy 3
dynamic creation not supported 4
file access denied 5
incompatible security levels 6
inconsistent parameters 7
inconsistent selection criterion 8
invalid data type 9
invalid file access method 10
invalid file start position 11
invalid operator name 12
invalid parameter data type 13
invalid timestamp 14
key generation error 15
missing required parameter 16
no objects of specified type 17
no space for object 18
no space to add list element 19
no space to write property 20
no vt sessions available 21
property is not a list 22
object deletion not permitted 23
object identifier already exists 24
operational problem 25
password failure 26
read access denied 27
security not supported 28
service request denied 29
timeout 30
unknown object 31
unknown property 32
this enumeration was removed 33
unknown vt class 34
unknown vt session 35
unsupported object type 36
value out of range 37
vt session already closed 38
vt session termination failure 39
write access denied 40
character set not supported 41
invalid array index 42
cov subscription failed 43
not cov property 44
optional functionality not supported 45
invalid configuration data 46
datatype not supported 47
duplicate name 48
duplicate object id 49
property is not an array 50
abort buffer overflow 51
abort invalid apdu in this state 52
abort preempted by higher priority task 53
abort segmentation not supported 54
abort proprietary 55
abort other 56
invalid tag 57
network down 58
reject buffer overflow 59
reject inconsistent parameters 60
reject invalid parameter data type 61
reject invalid tag 62
reject missing required parameter 63
reject parameter out of range 64
reject too many arguments 65
reject undefined enumeration 66
reject unrecognized service 67
reject proprietary 68
reject other 69
unknown device 70
unknown route 71
value not initialized 72
invalid event state 73
no alarm configured 74
log buffer full 75
logged value purged 76
no property specified 77
not configured for triggered logging 78
unknown subscription 79
parameter out of range 80
list element not found 81
busy 82
communication disabled 83
success 84
access denied 85
bad destination address 86
bad destination device id 87
bad signature 88
bad source address 89
bad timestamp 90
cannot use key 91
cannot verify message id 92
correct key revision 93
destination device id required 94
duplicate message 95
encryption not configured 96
encryption required 97
incorrect key 98
invalid key data 99
key update in progress 100
malformed message 101
not key server 102
security not configured 103
source security required 104
too many keys 105
unknown authentication type 106
unknown key 107
unknown key revision 108
unknown source message 109
not router to dnet 110
router busy 111
unknown network message 112
message too long 113
security error 114
addressing error 115
write bdt failed 116
read bdt failed 117
register foreign device failed 118
read fdt failed 119
delete fdt entry failed 120
distribute broadcast failed 121
unknown file size 122
abort apdu too long 123
abort application exceeded reply time 124
abort out of resources 125
abort tsm timeout 126
abort window size out of range 127
file full 128
inconsistent configuration 129
inconsistent object type 130
internal error 131
not configured 132
out of memory 133
value too long 134
abort insufficient security 135
abort security error 136
duplicate entry 137
invalid value in this state 138