Decoding BACnet Errors

文摘   2024-11-08 00:11   北京  

Issue

How to decode BACnet errors when they are encountered in the following products.

Product Line

EcoStruxure Building Operation, Andover Continuum, TAC IA Series

Environment

  • EBO Error Log Tool

  • Continuum bCX4040 (BACnet)

  • Continuum b3s

  • Building Operation Multi-purpose Controller (MPC/V)

  • Building Operation Room Controller (RPC/V)

  • Building Operation IP-IO

  • EBO Trace and System logs

Cause

Documentation is unavailable for these errors when reviewing log files against any captures. 

Resolution

The error in log files is composed of two fields, BACnetErrorClass and BACnetErrorCode. The BACnet Error Class (BEC) field is made of the high 16 bits and the BACnet Error Code (BE) of the low 16 bits. 

0x800 indicates the error class and error code are in Hexidecimal format.

Error Class 0x8001, when remove 0x800, 1 decodes to Object

Error Code 001f decodes to Unknown Object

Therefore, the error code is Object_Unknown Object, where the device indicates it has no knowledge of the object, either it does not exist or the device does not have the expected program/database installed. For b3, it could be memory was wiped on power failure and needs to be reloaded. It could mean the expected application needs to be downloaded for other devices.

 

The following are a subset of BACnet errors defined in the specification. If you have questions or encounter ones not listed, please contact Product Support Services.

 

Error Class List

High 16 bits of Error. See BACnet spec clause 18.

May not include 0x8000. (Example: could be 0x5002B instead of 0x8005002B for COV subscription failed)

Error Class

Hex(0x800)

Dec

Notes

device

0

0


object

1

1


property

2

2


resources

3

3


security

4

4


services

5

5


vt

6

6


proprietary



64 is the first available code for proprietary error classes

client

7FFD


0x7FFD0000

Reject

7FFE


0x7FFE0000 (error code is BACnetReject)

Abort

7FFF


0x7FFF0000 (error code is BACnetAbort)

 

Error Code List

Low 16 bits of Error. See BACnet spec clause 18.

Error Code

Hex (0x)

Dec

other

0

0

authentication_failed

1

1

configuration_in_progress

2

2

device_busy

3

3

dynamic_creation_not_supported

4

4

file_access_denied

5

5

incompatible_security_levels

6

6

inconsistent_parameters

7

7

inconsistent_selection_criterion

8

8

invalid_data_type

9

9

invalid_file_access_method

A

10

invalid_file_start_position

B

11

invalid_operator_name

C

12

invalid_parameter_data_type

D

13

invalid_time_stamp

E

14

key_generation_error

F

15

missing_required_parameter

10

16

no_objects_of_specified_type

11

17

no_space_for_object

12

18

no_space_to_add_list_element

13

19

no_space_to_write_property

14

20

no_vt_sessions_available

15

21

property_is_not_a_list

16

22

object_deletion_not_permitted

17

23

object_identifier_already_exists

18

24

operational_problem

19

25

password_failure

1A

26

read_access_denied

1B

27

security_not_supported

1C

28

service_request_denied

1D

29

timeout

1E

30

unknown_object

1F

31

unknown_property

20

32

removed

21

33

unknown_vt_class

22

34

unknown_vt_session

23

35

unsupported_object_type

24

36

value_out_of_range

25

37

vt_session_already_closed

26

38

vt_session_termination_failure

27

39

write_access_denied

28

40

character_set_not_supported

29

41

invalid_array_index

2A

42

cov_subscription_failed

2B

43

not_cov_property

2C

44

optional_functionality_not_supported

2D

45

invalid_configuration_data

2E

46

datatype_not_supported

2F

47

duplicate_name

30

48

duplicate_object_id

31

49

property_is_not_an_array

32

50

 

Common BACnet errors you may see:

Error Code

Translation

Notes

0x8000001e

Device + timeout

likely something is offline

0x8001001f

Object + unknown object

likely b3/AS memory was wiped in power fail

0x80020020

Property + unknown property


0x80020025

Property + value out of range

likely writing 0 to a multistate object

0x80020028

Property + write access denied


0x8002002c

Property + not cov property

trying to subscribe to non COV property 

0x8002002e

Property + invalid configuration data

likely configured a change-of-value alarm on non-analog

0x80030000

Resources + out of memory


0x80050007

Services + inconsistent parameters


0x80050019

Services + operational problem


0x8005001D

Services + service request denied


0x8005002B

Services + COV subscription failed

(0x5002B may show, not including the 0x800)

 

In Wireshark, using the display filter bacapp.type == 5 one will see errors dissected in the APDU packets in Decimal format. In this example, the BACnet device returns an error for Device (0) and operational problem (25) when responding to a readPropertyMultiple.

技术交流及项目合作,请私信联系或发送电子邮件至 bacnetsc@163.com。


老王自控
一个爱好自控的聚集地技术交流及合作,发邮件bacnetsc@163.com
 最新文章