BACnetScan读BO多个属性报文详解

本文详细解析了一个BACnet读取多个属性的应答报文,涵盖了报文结构、服务确认选项、服务选择、对象标识、属性标识及其对应的值等关键信息,旨在帮助理解BACnet协议并促进学习交流。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于自己不会c++也不能做个解析报文的软件和大家分享,就把我做项目中解析到的报文分享一下吧,学习这个协议的比较少,相应的资料也少。大家共同学习,共同进步吧。有不懂的,可以回复
读多个属性应答报文
55 FF 06 13 07 00 6E ED
01
00 //control ——参考1
30 //PDU Type=3 (BACnet-ComplexACK-PDU, SEG=0, MOR=0), ——参考2
0C //original invokeid=12
/——————-Service-ACK-Choice参考3——————————————–/
0E //ack service choice-read-property-multiple, 参考4
/————————-Service-ACK参考2/3—————————————/
0C //ReadProperty-ACK->objectIdentifier 参考5、6
01 00 00 00 //BINARY-OUTPUT=4,instance num=0
/———————- propertyIdentifier参考6、9—————————————–/
1E //opening tag1,listOfResults——参考12
29 //CONTEXT tag2,L=1,propertyIdentifier,L=1
4B // object-identifier =75——参考9->参考8
4E //opening tag 4,Property Value(不确定)
C4 //APPLICATION
TAG=12,L=4,BACnetObjectIdentifer
01 00 00 00 //BINARY-OUTPUT=4,instance num=0
4F
29 ////CONTEXT tag2,L=1, propertyIdentifier
4D //object-name=77 参考9
4E //opening tag 4,Property Value
75 //APPLICATION TAG 7,L=下面的值CharacterString——参考13
05 //参考14,扩展ASCII编码标
00 //空字符,下面是ASCII编码,对应程序中自己的设置字符
42 //B
4F //O
2D //-
30 //0
4F // closing tag4
29 // propertyIdentifier
1C //description=28
4E //opening tag 4
75 //APPLICATION TAG 7,L=扩展字节的值CharacterString——参考13
0A //L=10
00 //空字符
45 //
64 //
69 //
74 //
20 //<空格>
48 //
65 //
72 //
65 //
4F //Closing Tag 4
29 // propertyIdentifier
4F //object_type=79
4E
91 // Application Tag 9 (Enumerated, L=1)
04 // OBJECT_BINARY_OUTPUT——参考16
4F
29 // propertyIdentifier
55 //Present_Value=85,参考9
4E
91 //Application Tag 9 (Enumerated, L=1)
00 //INACTIVE
4F
29 // propertyIdentifier
6F //Statu_Falgs——下面的bit string 参考17
4E
82 //application tag 8(bit string),L=2——参考13
04 00 //0,0,0,0(FALSE, FALSE ,FALSE, FALSE)米看懂怎么编的
4F
29 // propertyIdentifier
24 //event_state
4E
91 //Application Tag 9 (Enumerated, L=1)
00 //NORMAL(Always)——参考18
4F
29 // propertyIdentifier
51 //Out_Of_Service=81
4E //opening tag 4 (Property Value)
10 //application tag1,L=0
4F
29 // propertyIdentifier
54 //Polarity=84
4E
91 //Application Tag 9 (Enumerated, L=1)——参考19
00 //Normal
4F
29 // propertyIdentifier
57 //polarity_arry=87
4E
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 //都是NULL
4F
29 // propertyIdentifier
68 //Requlish_Default=104
4E
91 //Application Tag 9 (Enumerated, L=1)
00 //0
4F
1F 2C BC
每一个propertyIdentifier下面都有一个构造编码,构造编码表示propertyIdentifier的信息
参考1:NPDU结构图

参考2:Bacnet-ComplexACK_PDU类型编码结构图

参考3:Service_ACK-choice

参考4:BACnetConfirmedServiceChoice(英文手册P402)

参考5:BACnet-Confirmed-Service-ACK

参考6:ReadProperty-ACK

参考7:BACnetObjectIdentifier

参考8:Encoding of an Object Identifier Value

参考9:BACnetPropertyIdentifier

参考10:BACNET_PROPERTY_ID
typedef enum {
PROP_ACKED_TRANSITIONS = 0,
PROP_ACK_REQUIRED = 1,
PROP_ACTION = 2,
PROP_ACTION_TEXT = 3,
PROP_ACTIVE_TEXT = 4,
PROP_ACTIVE_VT_SESSIONS = 5,
PROP_ALARM_VALUE = 6,
PROP_ALARM_VALUES = 7,
PROP_ALL = 8,
PROP_ALL_WRITES_SUCCESSFUL = 9,
PROP_APDU_SEGMENT_TIMEOUT = 10,
PROP_APDU_TIMEOUT = 11,
PROP_APPLICATION_SOFTWARE_VERSION = 12,
PROP_ARCHIVE = 13,
PROP_BIAS = 14,
PROP_CHANGE_OF_STATE_COUNT = 15,
PROP_CHANGE_OF_STATE_TIME = 16,
PROP_NOTIFICATION_CLASS = 17,
PROP_BLANK_1 = 18,
PROP_CONTROLLED_VARIABLE_REFERENCE = 19,
PROP_CONTROLLED_VARIABLE_UNITS = 20,
PROP_CONTROLLED_VARIABLE_VALUE = 21,
PROP_COV_INCREMENT = 22,
PROP_DATE_LIST = 23,
PROP_DAYLIGHT_SAVINGS_STATUS = 24,
PROP_DEADBAND = 25,
PROP_DERIVATIVE_CONSTANT = 26,
PROP_DERIVATIVE_CONSTANT_UNITS = 27,
PROP_DESCRIPTION = 28,
PROP_DESCRIPTION_OF_HALT = 29,
PROP_DEVICE_ADDRESS_BINDING = 30,
PROP_DEVICE_TYPE = 31,
PROP_EFFECTIVE_PERIOD = 32,
PROP_ELAPSED_ACTIVE_TIME = 33,
PROP_ERROR_LIMIT = 34,
PROP_EVENT_ENABLE = 35,
PROP_EVENT_STATE = 36,
PROP_EVENT_TYPE = 37,
PROP_EXCEPTION_SCHEDULE = 38,
PROP_FAULT_VALUES = 39,
PROP_FEEDBACK_VALUE = 40,
PROP_FILE_ACCESS_METHOD = 41,
PROP_FILE_SIZE = 42,
PROP_FILE_TYPE = 43,
PROP_FIRMWARE_REVISION = 44,
PROP_HIGH_LIMIT = 45,
PROP_INACTIVE_TEXT = 46,
PROP_IN_PROCESS = 47,
PROP_INSTANCE_OF = 48,
PROP_INTEGRAL_CONSTANT = 49,
PROP_INTEGRAL_CONSTANT_UNITS = 50,
PROP_ISSUE_CONFIRMED_NOTIFICATIONS = 51,
PROP_LIMIT_ENABLE = 52,
PROP_LIST_OF_GROUP_MEMBERS = 53,
PROP_LIST_OF_OBJECT_PROPERTY_REFERENCES = 54,
PROP_LIST_OF_SESSION_KEYS = 55,
PROP_LOCAL_DATE = 56,
PROP_LOCAL_TIME = 57,
PROP_LOCATION = 58,
PROP_LOW_LIMIT = 59,
PROP_MANIPULATED_VARIABLE_REFERENCE = 60,
PROP_MAXIMUM_OUTPUT = 61,
PROP_MAX_APDU_LENGTH_ACCEPTED = 62,
PROP_MAX_INFO_FRAMES = 63,
PROP_MAX_MASTER = 64,
PROP_MAX_PRES_VALUE = 65,
PROP_MINIMUM_OFF_TIME = 66,
PROP_MINIMUM_ON_TIME = 67,
PROP_MINIMUM_OUTPUT = 68,
PROP_MIN_PRES_VALUE = 69,
PROP_MODEL_NAME = 70,
PROP_MODIFICATION_DATE = 71,
PROP_NOTIFY_TYPE = 72,
PROP_NUMBER_OF_APDU_RETRIES = 73,
PROP_NUMBER_OF_STATES = 74,
PROP_OBJECT_IDENTIFIER = 75,
PROP_OBJECT_LIST = 76,
PROP_OBJECT_NAME = 77,
PROP_OBJECT_PROPERTY_REFERENCE = 78,
PROP_OBJECT_TYPE = 79,
PROP_OPTIONAL = 80,
PROP_OUT_OF_SERVICE = 81,
PROP_OUTPUT_UNITS = 82,
PROP_EVENT_PARAMETERS = 83,
PROP_POLARITY = 84,
PROP_PRESENT_VALUE = 85

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值