日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

BacNet开发入门2

發布時間:2023/12/18 编程问答 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 BacNet开发入门2 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.


???????

BACnet 說明

1?????? BACnet含義

A Data Communication Protocol for Building Automation and Control Network的簡稱,是一種為樓宇自控網絡制定的數據通訊協議。

2?????? BACnet技術特點

BACnet采用了面向對象的技術,它定義了一組具有屬性的對象(Object)來表示任意的樓宇自控設備的功能,從而提供了一種標準的表示樓宇自控設備的方式。同時BACnet定義了四種服務原語來傳遞某些特定的服務參數。目前BACnet共定義了18個對象,123 個屬性和35個服務。對象的方法稱為服務,由于一個樓宇自控系統中并不是所有的設備都要有必要支持BACnet所有的功能,BACnet協議還定義了6個性能級別和13個功能組。

6個性能級別,每個級別規定了設備要是先的最小服務子集,且包含級別低的服務,最小級別1.

1 BACnet對象

 

對 象 名 稱

? ? ?

01

模擬輸入Analog Input

模擬傳感器輸入如機械開關On/Off輸入

02

模擬輸出Analog Output

模擬控制量輸出

03

模擬值Analog Value

模擬控制設備參數如設備閥值

04

數字輸入Binary Input

數字傳感器輸入如電子開關On/Off輸入

05

數字輸出Binary Output

繼電器輸出

06

數字值Binary Value

數字控制系統參數

07

命令Command

向多設備多對象寫多值如日期設置

08

日歷表Calender

程序定義的事件執行日期列表

09

時間表Schedule

周期操作時間表

10

事件登記Event Enrollment

描述錯誤狀態事件如輸入值超界或報警事件。通知一個設備對象,也可通過“通知類”對象通知多設備對象

11

文件File

允許訪問(讀/寫)設備支持的數據文件

12

Group

提供單一操作下訪問多對象多屬性

13

Loop

提供訪問一個“控制環”的標準化操作

14

多態輸入Multi-state Output

表述多狀態處理程序的狀況,如制冷設備開、關和除霜循環

15

多態輸出Multi-state Output

表述多狀態處理程序的期望狀態,如制冷設備開始冷卻、除霜的時間

16

通知類Notification Class

包含一個設備列表,配合“事件登記”對象將報警報文發送給多設備

17

程序Program

允許設備應用程序開始和停止、裝載和卸載,并報告程序當前狀態

18

設備Device

其屬性表示設備支持的對象和服務以及設備商和固件版本等信息

?

BACnet應用層提供證實和非證實兩種類型的服務。BACnet定義了四種服務原語:請求、指示、響應和證實,它們通過應用層協議數據單元(APDU)傳遞。由于BACnet建立在無連接的通信模式上,所以OSI模型提供端到端服務的傳輸層部分簡

化功能也由應用層實現,分別為:可靠的端到端傳輸和差錯校驗;報文分段和流量控制;報重組和序列控制。

3?????? BACnet優點

1)具有良好的互連特性和擴展性。BACnet標準雖然從體系結構上定義了不同的局域網絡,但BACnet標準可以擴展到其他任意通信網絡。例如,BACnet/IP標準可以實現與Internet的無縫互連。
  2)具有良好的伸縮性。BACnet標準沒有限制BACnet系統中設備節點的數量,BACnet集成系統可以由幾個設備節點構成一個極小的自控系統,也可以形成一個規模極大的超級大系統。

4?????? BACnet體系結構

1OSI/RM模型的實現需要很高的費用,實際上在絕大部分樓宇自控系統應用中也并不需要這么多的層次,事實上BACnet只包含OSI模型中被選擇的層次,其它各層則去掉,這樣減少了報文長度,降低了通信處理開銷,同時也節約了樓宇自控工業的生產成本。

2BACnet應充分利用現有的廣泛使用的局域網技術,如EthernetARCNETLonTalk,因此成本進一步降低,同時也有利于技術的推廣和性能的提高。


在考慮了樓宇設備監控網絡的特征和要求以及盡可能少的協議開銷原則后,BACnet協議提出了一種簡化的四層體系結構,相當于OSI/RM模型中的物理層、數據鏈路層、網絡層和應用層。

支持五種組合類型的數據鏈路/物理層規范。其中主從/令牌傳遞(MS/TP)協議是專門針對樓宇自控設備設計的數據鏈路規范。BACnet在物理介質上,支持雙絞線、同軸電纜和光纜,在拓撲結構上,支持星型和總線拓撲。

5?????? BACnet網絡結構

BACnet沒有嚴格規定網絡拓撲結構。其中:網段(Segment)是多個物理網段通過中繼器(R)連接形成的段落區間;網絡是多個網段通過網橋(B)連接而成的,每個網絡都形成一個MAC地址域;BACnet/Internet網絡是將使用不同局域網技術的多個網絡用路由器(RT)互聯起來形成的網際網。



目前,BACnet標準使用兩種技術實現與Internet的互聯。第一種技術附件H中稱之為“隧道”技術,并將其設備稱之為分組封裝/拆裝設備,簡稱PAD。其作用就像一個網關/路由器,這在圖2中兩個半路由器連接廣域網形成一個完全的BACnet路由器有所體現。第二種技術附件J中稱之為BACnetIP,設備直接封裝IP幀/包在BACnet網絡和Internet上傳輸。PADBACnet報文數據封裝在IP協議數據包內傳輸,在目的BACnet網絡解封。因此每個連接InternetBACnet網絡都要配置PAD網關/路由器。它可以是一個單獨的設備,也可以是某種樓宇控制設備功能的一部分。

在BACnet拓撲中設備之間只存在一條邏輯通路,無需廣域網的最優路由算法;其次,BACnet具有單一的局部地址空間,所以BACnet參照OSI模型制定了簡化的網絡層協議,向應用層提供不確認無連接的數據單元傳送服務。每個BACnet設備都被一個網絡號碼和一個MAC地址唯一確定。

網絡層通過“路由器”實現兩個或多個異類BACnet局域網(不同的數鏈層)的連接,并通過協議報文進行“路由器”的自動配置、路由表維護和擁塞控制。BACnet路由器與每個網絡的連接處稱為一個“端口”。路由表中包含端口的下列項目:(1)端口所連接網絡的MAC地址和網絡號;(2)端口可到達網絡的網絡號列表及與這些網絡的連接狀態。圖2中,“1/2RT”是半路由器,由PTP連接形成一個完整的BACnet路由器,即BACnet網際網將廣域網技術向應用層屏蔽。

BACnet應用層即BACnet應用實體,通過API(應用編程接口)為上層應用程序服務,并與對等應用層實體通信。應用實體由兩部分組成:用戶單元和應用服務單元(ASE)。ASE是一組特定內容的應用服務。而用戶單元支持本地API、保存事務處理上下文信息、產生請求ID、記錄ID對應的應用服務響應、維護超時重傳機制所需的計數器以及將設備行為要求映射為對象。

BACnet應用層提供證實和非證實兩種類型的服務。BACnet定義了四種服務原語:請求、指示、響應和證實,它們通過應用層協議數據單元(APDU)傳遞。由于BACnet建立在無連接的通信模式上,所以OSI模型提供端到端服務的傳輸層部分簡化功能也由應用層實現,分別為:可靠的端到端傳輸和差錯校驗;報文分段和流量控制;報文重組和序列控制。

?

6?????? BACnet協議實現

6.1??? BACnet/IP的報文結構

在網絡上傳輸的物理幀格式如圖2所示。

?

?

PCI:協議控制單元。

APDU = APCI+ DATA

NPDU = NPCI+ NSDU

LPDU = LPCI+? LSDU

MPDU = MPCI+ MSDU

PPDU = PPCI+ PSDU

?

2? 物理幀的格式

6.2????? 報文實現過程

?????? 數據

+

APCI(應用層協議控制單元)

+

NPCI(網絡層協議控制單元)

+

BVLLPCI(BACnet 虛擬鏈路層協議控制單元)

?

然后將所得的BVLL 報文整體交給網絡層,這里采用UDP(用戶數據報)協議,指定接收端的IP地址和端口‘0xBAC0發送。

客戶端發送ReadProperty-Request(讀屬性請求)報文,而服務器端在正確接收報文并解碼成功后,如果存在該屬性(Property),則返回Result(+)正響應ReadProperty-ACK(讀屬性響應)報文,如果不存在該屬性,則返回Result()負響應報文,并返回相應的錯誤代碼。解碼過程只是編碼過程的逆過程

6.3????? 編碼過程

5.3.1 ?ASNAbstract Syntax Notation One

 是一種 ISO/ITU-T 標準,描述了一種對數據進行表示、編碼、傳輸和解碼的數據格式。它提供了一整套正規的格式用于描述對象的結構,而不管語言上如何執行及這些數據的具體指代,也不用去管到底是什么樣的應用程序。

TLV編碼是指先對Tag編碼,再對Length編碼,最后對Value編碼。

編碼方式

BACnet協議采用混合編碼方式,其APDU編碼分為兩部分。第一部分是數據部分也就是APDU部分,采用ASN.1基本編碼規則,即TLV編碼,它把各種數據表示為三部分:標識符字節(T),長度字節(L),內容字節(V),來明確標識每個數據。這一部分是難點和重點,不僅需要完成對數據的編解碼,而且需要編解碼其相應的標記。

第二部分控制信息部分,由于PCI部分格式固定,具有固定的位置和長度所以可以不使用標記和長度字段直接編碼,所以可以通過參數的賦值直接完成。BACnet采用混合編碼的方法既不失靈活性又節省了開銷。

首先是對數據部分的編碼,也就是標記及各類數據的編解碼

BACnet標記編碼:BACnet的標記主要有一般標記、開始標記和結束標記。所有的標記均被封裝成一個類,其第一字節為固定的TLV格式,BACnet里以TCL表示即Tag Number(4)Class(1位,表示上下文標記或者應用標記)Length/Value/Type(3),如果出現Tag Number Length/Value/Type 有超過第一字節規定的數據的,就在其后加上擴展的字節。

標記的類定義如下,其中TCL以結構體field來定義完成位操作,并定義了擴展字節externnum作為后續的擴展標記字節,以及extra1,2,3作為擴展長度字節。同時定義了三種標記的編解碼函數來通過參數傳遞完成相應的操作。

class tag

{

public:

??? struct

??? {

??????? unsigned int l:3;

??????? unsigned int c:1;

??????? unsigned int n:4;

??? }field;

??? short externnum;??

??? short extra1;

??? short extra2;

??? int extra3;

?

??? tag();

??? void TagEncode(char *p,int number,int class_t,int len);

??? void TagDiscode(char *p,int *pnum,int *pclass_t,int *plen);

??? int StartTagE(char *p,int number);

??? int EndTagE(char *p,int number);

int StartTagD(char *p,int *number);

??? int EndTagD(char *p,int *number);

private:

??? int temp;

};

具體賦值遵循如下原則:對于一般標記來說,標記編號域(T):當標記編號為014(包含0 14)時,用該域直接進行編碼。當標記編號為15254(包含15 254)時,則該域編碼為‘B 1111,并在該標記字段之后用一個字節對標記編號進行編碼。但標記編碼號根據目前應用需要不得大于254,因而標記編碼擴展字節只有一個字節就可以滿足實際應用。長度//類型域(L):該域所表示的內容較為復雜,一是用于區分簡單(Primitive)類型編碼和構造(Constructed)類型編碼。二是用于表示簡單編碼中簡單類型數據的長度和值。具體的表示方法參加BACnet協議。

?對于開始標記,該標記標識構造編碼開始。其標記字節的Class域為‘B 1Length/Value/Type 域為‘B 110。相應的結束標記的標記字節的Class域為‘B 1Length/Value/Type 域為‘B 111。所以這兩個標記的編解碼只需簡單的傳遞number參數。開始標記和結束標記用于構造類型數據的編碼。

讀屬性服務是構造類型數據。構造類型數據是簡單類型經過復雜組合而形成的具有一定結構的復合數據,構造類型可以嵌套。該類型由兩個必須包括的項:objectIdentifier propertyIdentifier 和一個可選的項: propertyArrayIndex 分別描述讀請求所要讀的對象,屬性和是否存在數據類型組。

6.4????? 地址碼設定

  BACnet參照OSI模型制定了簡化的網絡層協議,向應用層提供不確認無連接的數據單元傳送服務。每個BACnet設備都被一個網絡號碼和一個MAC地址唯一確定。

可信自控的控制器(DDC)在BACnet網絡中遵循以下簡單的地址設置方法,來保證在多種廠商設備聯網的BACnet網絡中地址的唯一性。這里,Device# BACnet地址碼,RCC#是可信自控的地址碼。
主網: Device# 主網控制器RCC# 1000
子網SubA Device# 主網控制器RCC# 1000 SubA控制器
RCC#
子網SubB Device# 主網控制器RCC# 1000 SubB控制器RCC# 200

  下面說明可信自控的地址碼(RCC#)與BACnet地址碼(BACnet#)在一個網絡系統中共存和相互之間的關系。
  在主網上,有控制器MACH1MACH-ZoneETHRT-LinkMACH-Global,其RCC#分別為1234,其Device#分別為1000200030004000。在MACH-GlobalRCC#4
  上有2個子網SubASubBSubAMACH2MACH-Air控制器,其RCC#4A14A2,其BACnet地址碼Device#40014002SubB上有MACH-AirMACH-Zone控制器,其RCC#4B14B2,其BACnet地址碼Device#42014202。同理,ETHER-LinkDevice#=3)下掛一個子網,有MACH-AirMACH-Zone控制器,其RCC#3A13A2,其BACnet地址碼Device#30013002

7?????? BACnet協議摘錄

1.?????? 應用層模型:

應用程序,應用程序接口API,下面是BACnet的應用層,由BACnet 用戶元素和BACnet ASE組成,ASElapplication service element”。對等的應用層之間采用抽象服務原語進行信息交互。

服務原語的定義:請求,指示,響應和確認。原語通過PDUS協議數據單元進行表達,(protocol data units

通過應用程序接口,用戶實現遠程訪問。接口控制信息包括ICI(interface control information)服務原語和服務的具體參數,

?

ICI接口參數:DA,SA, NP, DER

DA: destination_address:欲接收設備的地址。

SA: source_address: 服務原語發出的設備地址.?格式(設備名稱,網絡地址)

NP: network_priotiry: 四層網絡優先參數。

DER: data_expecting_reply: 服務發出后是否期待返回,TRUE OR FALSE.

?

BACnet定義了客戶端和服務器通信模型的應用服務

APDU長度:

本地BUFFER, NPDU, 50字節,三者中的最小者。

?

2.?????? 網絡層

BACnet網絡層提供由一個BAC到另一個的網絡連接而,不管各自網絡采用了怎樣的數據鏈路層技術。一個BACnet設備地址由網絡地址和MAC地址唯一確定。

?

NPDU長度最大值列表:

?

網絡層交互提供的數據原語:

??

????? NPDU中的第一個字節是版本信息,第二個字節是控制信息,只是當前或存在的NPCI

一個控制字節中的位信息表示如下:

Bit7 1 NSDU是一個消息類型字段 0NSDU是一個BACnet APDU

Bit6:? ?保留信息 0

Bit5: ??目的地址符

Bit4? 保留信息 0.


Bit3:? 源地址符。

Bit2:? 返回原語中data_expecting_reply參數的含義

Bit1: Bit0: 網絡優先權。

?

NPDU格式:

DNET 2:? 目的網絡地址號

DLEN 1:? 目的MAC層地址長

DADR V:? 目的MAC地址

DA:??????? 本地網絡MAC地址

SNET:? 2 :源網絡網絡號

SLEN:?? 1?? MAC地址長

SADR:? V: MAC地址

SA:???????? ?? 本地網絡MAC地址

Hop Count:? 跳躍次數,避免循環路徑。

Message type:?消息類型,00- 0A +80?? P62

?

?

?

?

?

?

?

3.?????? 數據鏈路層和物理層

DATALINK logical link control

?

Format of an MPDU on an ISP8802-3LAN


尋找創業合作伙伴, 加QQ 404536204

總結

以上是生活随笔為你收集整理的BacNet开发入门2的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 高清不卡av | 超碰在线最新地址 | 亚洲制服丝袜在线播放 | 国产视频xxx | 新版红楼梦在线高清免费观看 | 在线日韩中文字幕 | 欧美黄色大片免费看 | 免费观看在线观看 | 在线观看欧美一区二区三区 | 欧美一级免费大片 | 欧美日韩精品综合 | 国产资源精品 | 日韩永久免费视频 | 1024亚洲天堂 | 天天做天天爱天天爽 | 亚洲天堂色 | 亚洲视频www | 日本女人一区二区三区 | 国产毛片毛片毛片毛片毛片 | 国产一区二区视频免费 | 日韩欧美精品国产 | 精品欧美一区二区三区久久久 | 伊人小视频| 强伦人妻一区二区三区 | 日本一级三级三级三级 | 久久精品国产露脸对白 | 中文在线8资源库 | 亚洲欧洲在线看 | 欧美精品电影一区二区 | 蜜乳av一区二区三区 | 99这里都是精品 | 日本不卡一区二区在线观看 | 被各种性器调教到哭vk | 中文字幕三级电影 | 日本天堂在线播放 | 天天操,夜夜操 | 成长快手短视频在线观看 | 无码精品国产一区二区三区免费 | 日本一级片在线播放 | 粉嫩av一区二区夜夜嗨 | 国产成人77亚洲精品www | 龚玥菲三级露全乳视频 | 不卡视频在线观看 | 成人影院免费 | 在线精品视频免费观看 | 国产96视频| 波多野结衣喷潮 | 能看的av | 亚洲精品无码久久久久 | 国产欧美在线观看视频 | 久久爱一区二区 | 成年人在线免费观看网站 | 最近最好的2019中文 | 国产区一区二 | 在线免费国产视频 | 免费福利小视频 | 4438x全国最大成人 | 神宫寺奈绪一区二区三区 | 在线免费看av片 | 日韩簧片 | 精品乱码一区二区三四区视频 | 亚洲精品综合 | 欧美高清在线视频 | 久久综合久久综合久久综合 | 午夜高潮视频 | 一区二区三区在线视频免费观看 | 麻豆成人久久精品一区二区三区 | 精品日韩中文字幕 | jizjiz中国少妇高潮水多 | 欧美性日韩| 久久久免费在线观看 | 精品人妻无码一区 | 欧美精品色哟哟 | 4444亚洲人成无码网在线观看 | 高清三区 | 欧美综合视频 | 亚洲一区你懂的 | 日韩欧美高清在线 | 亚洲第一视频在线观看 | 狠狠操女人 | 欧美日韩精品一区二区 | 国产91在线播放精品91 | 综合五月| 日本成人不卡 | 91精品人妻一区二区三区蜜桃欧美 | 屁屁影院第一页 | 熟女熟妇伦久久影院毛片一区二区 | 清清草免费视频 | 黄色福利视频网站 | 久久黑人 | 国产成人无码久久久精品天美传媒 | 91插插插插插插插插 | 日韩爱爱爱 | 久草视频在线免费播放 | 天天色综合久久 | 成人免费毛片高清视频 | 中文字幕久久综合 | 97操| 爱操av|