BACnet通讯分析.docx

上传人:b****4 文档编号:3135111 上传时间:2022-11-17 格式:DOCX 页数:48 大小:107.73KB
下载 相关 举报
BACnet通讯分析.docx_第1页
第1页 / 共48页
BACnet通讯分析.docx_第2页
第2页 / 共48页
BACnet通讯分析.docx_第3页
第3页 / 共48页
BACnet通讯分析.docx_第4页
第4页 / 共48页
BACnet通讯分析.docx_第5页
第5页 / 共48页
点击查看更多>>
下载资源
资源描述

BACnet通讯分析.docx

《BACnet通讯分析.docx》由会员分享,可在线阅读,更多相关《BACnet通讯分析.docx(48页珍藏版)》请在冰豆网上搜索。

BACnet通讯分析.docx

BACnet通讯分析

BACnet通讯分析

D

原网络长度

1Byte

SLEN

原地址

可变

SNET

路由数目

1Byte

HopCount

消息类型

1Byte

MessageType

卖方ID

2Bytes

VendorID

应用层信息

可变

APDU

版本信息:

默认0x01

控制字:

BIT7:

1表示MessageType存在,为0时MessageType不存在

BIT6:

保留,为0

BIT5:

1表示DNETDLENHopCount存在,当DLEN为0时表明广播网络

DADR不存在;0表示DNETDLENDADRHopCount不存在

BIT4:

保留,为0

BIT3:

1表示SNETSLEN存在,当SLEN为0时表明无效SADR不存在;

0表示SNETSLENSADRHopCount不存在

BIT2:

1表示为一个需确认的请求数据单元,一复杂ACK数据单元或一网络层

信息非reply的;0表示除去上述情形的数据单元

BIT1、0:

网络优先级

11=LifeSafetymessage

10=CriticalEquipmentmessage

01=Urgentmessage

00=Normalmessage

目标网络号:

FFFF的时候表示广播

目标长度:

表示DADR的长度

目标地址:

目标网络MAC地址

原网络号:

同目标网络号

原网络长度:

表示SADR的长度

原地址:

原网络的MAC地址

路由数目:

数据需要经过的路由个数,当不存在DNET的时候,需设置为FF

消息类型:

X'00':

Who-Is-Router-To-Network

X'01':

I-Am-Router-To-Network

X'02':

I-Could-Be-Router-To-Network

X'03':

Reject-Message-To-Network

X'04':

Router-Busy-To-Network

X'05':

Router-Available-To-Network

X'06':

Initialize-Routing-Table

X'07':

Initialize-Routing-Table-Ack

X'08':

Establish-Connection-To-Network

X'09':

Disconnect-Connection-To-Network

X'0A'toX'7F':

ReservedforusebyASHRAE

X'80'toX'FF':

Availableforvendorproprietarymessages

卖方ID:

当控制字的BIT7为1并且消息类型为X'80'toX'FF':

的时候,才会存在

本次开发没有用到,不再解释

本次应用中控制字只用到0x20和0x04两种,前者为广播查询设备,后者微点对对取设备数据或属性。

4、BACnetAPDU结构:

(应用层协议数据单元)

BACnet网络层数据主要分为一下几种:

BACnetPDU:

:

=CHOICE

{

confirmed-request-PDU[0]BACnet-Confirmed-Request-PDU,

unconfirmed-request-PDU[1]BACnet-Unconfirmed-Request-PDU,

simpleACK-PDU[2]BACnet-SimpleACK-PDU,

complexACK-PDU[3]BACnet-ComplexACK-PDU,

segmentAck-PDU[4]BACnet-SegmentACK-PDU,

error-PDU[5]BACnet-Error-PDU,

reject-PDU[6]BACnet-Reject-PDU,

abort-PDU[7]BACnet-Abort-PDU

}

对于本次应用,主要用到了

BACnet-Confirmed-Request-PDU(需确认的请求协议数据单元)

BACnet-Unconfirmed-Request-PDU(无需确认的请求协议数据单元)

BACnet-ComplexACK-PDU(复杂的ACK命令)

BACnet-Error-PDU(报错的协议数据单元)

对于上述几种数据的分类主要根据pdutype(下文进行讲解)进行判定。

4.1.BACnet-Confirmed-Request-PDU的结构:

BACnet-Confirmed-Request-PDU:

:

=SEQUENCE

{

pdu-type[0]Unsigned(0..15),--0forthisPDUtype

segmented-message[1]BOOLEAN,

more-follows[2]BOOLEAN,

segmented-response-accepted[3]BOOLEAN,

reserved[4]Unsigned(0..3),--mustbesettozero

max-segments-accepted[5]Unsigned(0..7),--asper20.1.2.4

max-APDU-length-accepted[6]Unsigned(0..15),--asper20.1.2.5

invokeID[7]Unsigned(0..255),

sequence-number[8]Unsigned(0..255)OPTIONAL,--onlyifsegmentedmsg

proposed-window-size[9]Unsigned(1..127)OPTIONAL,--onlyifsegmentedmsg

service-choice[10]BACnetConfirmedServiceChoice,

service-request[11]BACnet-Confirmed-Service-RequestOPTIONAL

}

BIT7

BIT6

BIT5

BIT4

BIT3

BIT2

BIT1

BIT0

PDUTYPE

SEG

MOR

SA

0

0

MaxSegs

MaxResp

InvokeID

SequenceNumber(onlypresentbySEG==1)

ProposedWindowSize(onlypresentbySEG==1)

ServiceChioce

ServiceRequest……

PDUType0(BACnet-Confirmed-Service-Request-PDU)

SEG0(UnsegmentedRequest)

1(SegmentedRequest)

MOR0(NoMoreSegmentsFollow)

1(MoreSegmentsFollow)

SA0(SegmentedResponsenotaccepted)

1(SegmentedResponseaccepted)

MaxSegs(0..7)(Numberofresponsesegmentsacceptedper20.1.2.4)

MaxResp(0..15)(SizeofMaximumAPDUacceptedper20.1.2.5)

InvokeID(0..255)

SequenceNumber(0..255)OnlypresentifSEG=1

ProposedWindowSize(1..127)OnlypresentifSEG=1

ServiceChoiceBACnetConfirmedServiceChoice

ServiceRequestVariableEncoding

SEG:

指出当前的数据单元是否为完整的还是为一部分分段信息

MOR:

指出是否还有更多的分段信息

SA:

为1时指出将收到一个复杂的回应(complexack)

MaxSegs:

指出设备将要接收到多少分段信息

B'000'Unspecifiednumberofsegmentsaccepted.

B'001'2segmentsaccepted.

B'010'4segmentsaccepted.

B'011'8segmentsaccepted.

B'100'16segmentsaccepted.

B'101'32segmentsaccepted.

B'110'64segmentsaccepted.

B'111'Greaterthan64segmentsaccepted.

MaxResp:

指出将收到的(APDU)最大长度

B'0000'UptoMinimumMessageSize(50octets)

B'0001'Upto128octets

B'0010'Upto206octets(fitsinaLonTalkframe)

B'0011'Upto480octets(fitsinanARCNETframe)

B'0100'Upto1024octets

B'0101'Upto1476octets(fitsinanISO8802-3frame)

InvokeID:

调用者ID

ServiceChioce:

此处表明次报文的作用,详见BACnetConfirmedServiceChoice

ServiceRequest:

根据BACnetConfirmedServiceChoice不同而结构不同,详见

BACnet-Confirmed-Service-Request

BACnetConfirmedServiceChoice:

:

=枚举类型

{

--AlarmandEventServices

acknowledgeAlarm(0),

confirmedCOVNotification

(1),

confirmedEventNotification

(2),

getAlarmSummary(3),

getEnrollmentSummary(4),

getEventInformation(29),

subscribeCOV(5),

subscribeCOVProperty(28),

lifeSafetyOperation(27),

--FileAccessServices

atomicReadFile(6),

atomicWriteFile(7),

--ObjectAccessServices

addListElement(8),

removeListElement(9),

createObject(10),

delet

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1