版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第1章BACnet協(xié)議概述本章介紹BACnet協(xié)議的產(chǎn)生及協(xié)議模型,討論BACnet網(wǎng)絡(luò)的體系結(jié)構(gòu)、拓?fù)浣Y(jié)構(gòu)、協(xié)議棧以及數(shù)據(jù)流。§1.1 BACnet協(xié)議模型 BACnet簡(jiǎn)介BACnet(AData Communication Protocol for Building Automation and Control Network)是一種為樓宇自動(dòng)控制網(wǎng)絡(luò)所制定的數(shù)據(jù)通信協(xié)議,它由美國(guó)冷暖空調(diào)工程師協(xié)會(huì)組織的標(biāo)準(zhǔn)項(xiàng)目委員會(huì)135P(Standard Projec
2、t Committee: SPC 135P)于1995年6月制定。BACnet標(biāo)準(zhǔn)產(chǎn)生的背景是用戶對(duì)樓宇自動(dòng)控制設(shè)備互操作性(Interoperability)的廣泛要求,即將不同廠家的設(shè)備組成一個(gè)一致的自控系統(tǒng)。BACnet實(shí)現(xiàn)樓宇自控設(shè)備的互操作性的思想是這樣的,一般樓宇自控設(shè)備從功能上講分為兩部分,一部分專門處理設(shè)備的控制功能,另一部分專門處理設(shè)備的數(shù)據(jù)通信功能,不同廠商生產(chǎn)的設(shè)備使用各自專門的數(shù)據(jù)通信的方式,所以不同廠商的設(shè)備之間沒(méi)有很好的互操作性。BACnet就是要建立一種統(tǒng)一的數(shù)據(jù)通信的標(biāo)準(zhǔn),用于設(shè) 備的 通 信 部 分,從而使得按這種標(biāo)準(zhǔn)生產(chǎn)的設(shè)備,
3、都可以進(jìn)行通信,實(shí)現(xiàn)互操作性。BACnet標(biāo)準(zhǔn)只是規(guī)定了樓宇自控設(shè)備之間要進(jìn)行“對(duì)話”所必須遵守的規(guī)則,并不涉及如何實(shí)現(xiàn)這些規(guī)則,各廠商可以用不斷進(jìn)步的技術(shù)來(lái)開(kāi)發(fā),從而使得整個(gè)領(lǐng)域的技術(shù)不斷進(jìn)步。 BACnet協(xié)議模型 SPC征集了各方面的意見(jiàn),同時(shí)參考了國(guó)際上各種現(xiàn)已成文的或是事實(shí)上的數(shù)據(jù)通信標(biāo)準(zhǔn),討論得出了一個(gè)具有以下特性的網(wǎng)絡(luò)協(xié)議模型:(1) 所有的網(wǎng)絡(luò)設(shè)備,除了主從/令牌傳遞式從屬機(jī)(MS/TP slaves : master-slave/token-passing slaves)以外,都是對(duì)等的(Peer)。當(dāng)然某些同等設(shè)
4、備可能比其他具有更多的特權(quán)(Privilege)和職責(zé)(Responsibility)。(2)每一個(gè)網(wǎng)絡(luò)設(shè)備都稱之為是一個(gè)“對(duì)象”(Object)的實(shí)體(entity),這是一個(gè)具有網(wǎng)絡(luò)訪問(wèn)特征的集合模型。每個(gè)對(duì)象又用一些“屬性”(Property)來(lái)描述,這些屬性表示了設(shè)備的硬件、軟件以及操作的各個(gè)方面。在不需要了解設(shè)備內(nèi)部設(shè)計(jì)或配置細(xì)節(jié)的情況下,對(duì)象提供了識(shí)別和訪問(wèn)設(shè)備信息的方法。盡管該標(biāo)準(zhǔn)規(guī)定了廣泛的應(yīng)用對(duì)象的類型以及它們的屬性,但是一旦需要,利用開(kāi)發(fā)工具仍可以自由地增加新的對(duì)象類型。(3)通信功能是通過(guò)讀寫某些對(duì)象的屬性,以及利用其他協(xié)議提供的“服務(wù)”(Service)來(lái)完成的。盡管該
5、標(biāo)準(zhǔn)規(guī)定了一套詳盡的服務(wù),但是一旦需要,該標(biāo)準(zhǔn)的機(jī)制也同樣允許利用開(kāi)發(fā)工具增加新的服務(wù)。(4)設(shè)備的完善性(Sophistication),即實(shí)現(xiàn)特定服務(wù)請(qǐng)求或理解特定對(duì)象類型種類的能力,是由設(shè)備的“一致性類別”(Conformance Class)所反映的。每一種類別定義了一個(gè)包括服務(wù)、對(duì)象、屬性的最小集合,聲明為某一類別的設(shè)備必須支持其相應(yīng)的集合。(5)由于該標(biāo)準(zhǔn)遵循了ISO的“分層”通信體系結(jié)構(gòu)的概念,因此使用不同的網(wǎng)絡(luò)訪問(wèn)方法和物理介質(zhì)可以交換相同的報(bào)文。這樣可以根據(jù)傳輸速度和吞吐量的要求,采用相宜的開(kāi)銷來(lái)配置BACnet網(wǎng)絡(luò)。(6)該標(biāo)準(zhǔn)是為暖氣、通風(fēng)、空調(diào)、制冷控制設(shè)備所
6、設(shè)計(jì)的,同時(shí)它也為其他樓宇控制系統(tǒng)的集成提供了基本原則,例如照明、保安、消防系統(tǒng)等。雖然這些擴(kuò)展超出了該標(biāo)準(zhǔn)的范圍,但實(shí)現(xiàn)起來(lái)卻簡(jiǎn)單明了。并且,標(biāo)準(zhǔn)中定義的許多對(duì)象和服務(wù)也可以不加修改地被應(yīng)用。當(dāng)然,一旦這些其他類型的樓宇控制功能需要,也可以簡(jiǎn)單方便地定義新的對(duì)象和服務(wù)。(7)該標(biāo)準(zhǔn)的目的是為暖氣、通風(fēng)、空調(diào)、制冷控制設(shè)備和其它樓宇自控設(shè)備的監(jiān)控定義數(shù)據(jù)通信的服務(wù)和協(xié)議。除此之外,標(biāo)準(zhǔn)還定義了抽象的、面向?qū)ο蟮谋硎痉?,用?lái)描述這些設(shè)備間的信息通信,以便于在樓宇中使用數(shù)字控制技術(shù)。所有的通信協(xié)議都是一個(gè)解決各種信息交換問(wèn)題的方案的集合,并且隨著時(shí)間的推移和技術(shù)的進(jìn)步而不斷改變,BACnet網(wǎng)絡(luò)同
7、樣也不例外。§1.2 BACnet協(xié)議的體系結(jié)構(gòu)國(guó)際標(biāo)準(zhǔn)化組織在制定計(jì)算機(jī)網(wǎng)絡(luò)通訊協(xié)議標(biāo)準(zhǔn)時(shí)定義了一個(gè)模型,稱為開(kāi)放式系統(tǒng)互聯(lián)參考模型(OSI模型),模型的目的是解決計(jì)算機(jī)與計(jì)算機(jī)之間普遍的通信問(wèn)題,并將這個(gè)復(fù)雜的問(wèn)題分解成7個(gè)小的、易解決的子問(wèn)題,每個(gè)子問(wèn)題只與某些通信功能相關(guān)聯(lián),如圖1-1所示。這樣每個(gè)子問(wèn)題便形成了協(xié)議體系結(jié)構(gòu)中的一“層”。任何兩個(gè)遵循該模型及有關(guān)標(biāo)準(zhǔn)的設(shè)備或系統(tǒng),都可以實(shí)現(xiàn)互連和互操作。SPC制定BACnet標(biāo)準(zhǔn)時(shí),確定BACnet作為一種開(kāi)放性計(jì)算機(jī)局域網(wǎng)協(xié)議,它仍然采用OSI模型的“分層”通信體系結(jié)構(gòu)的概念。在確定分層的層數(shù)時(shí),考慮了下列兩個(gè)因素
8、:第一,OSI模型的實(shí)現(xiàn)需要很高的費(fèi)用,實(shí)際上在絕大部分樓宇自控系統(tǒng)應(yīng)用中也并不需要這么多的層次。但是從OSI的功能性方面考慮,經(jīng)過(guò)簡(jiǎn)化后,OSI模型仍然是設(shè)計(jì)樓宇自控協(xié)議的一個(gè)很好參考,如果只包含OSI模型中被選擇的層次,其它各層則去掉,這樣減少了報(bào)文長(zhǎng)度,降低了通信處理開(kāi)銷,同時(shí)也會(huì)節(jié)約樓宇自控工業(yè)的生產(chǎn)成本。第二,如果能夠充分利用現(xiàn)有的、易用的、廣泛使用的局域網(wǎng)技術(shù),如Ethernet、ARCNET和LonTalk,不但可以降低成本,同時(shí)也有利于性能的提高。由此,SPC確定BACnet標(biāo)準(zhǔn)協(xié)議體系結(jié)構(gòu)為一個(gè)包含四個(gè)層次的分層體系結(jié)構(gòu),這四個(gè)層次相對(duì)于OSI模型中的物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)
9、層和應(yīng)用層,如圖1-2所示。BACnet標(biāo)準(zhǔn)定義了自己的應(yīng)用層和網(wǎng)絡(luò)層,對(duì)于其數(shù)據(jù)鏈路層和物理層,提供了以下五種選擇方案: 第一種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協(xié)議,加上ISO 8802-3介質(zhì)訪問(wèn)控制(MAC)協(xié)議和物理層協(xié)議。ISO 8802-2類型1提供了無(wú)連接不確認(rèn)的服務(wù),ISO 8802-3則是著名的以太網(wǎng)協(xié)議的國(guó)際標(biāo)準(zhǔn)。 第二種選擇是ISO 8802-2類型1定義的邏輯鏈路控制(LLC)協(xié)議,加上ARCNET(ATA/ANSI 878.1)。 第三種選擇是主從/令
10、牌傳遞(MS/TP)協(xié)議加上EIA-485協(xié)議。MS/TP協(xié)議是專門針對(duì)樓宇自控設(shè)備設(shè)計(jì)的,它通過(guò)控制EIA-485的物理層,向網(wǎng)絡(luò)層提供接口。 第四種選擇是點(diǎn)對(duì)點(diǎn)(PTP)協(xié)議加上EIA-232協(xié)議,為撥號(hào)串行異步通信提供了通信機(jī)制。 第五種選擇是LonTalk協(xié)議。 這些選擇都支持主/從MAC、確定性令牌傳遞MAC、高速爭(zhēng)用MAC以及撥號(hào)訪問(wèn)。拓?fù)浣Y(jié)構(gòu)上,支持星型和總線型拓?fù)?;物理介質(zhì)上,支持雙絞線、同軸電纜、光纜。以下詳細(xì)討論BACnet選擇一個(gè)四層體系結(jié)構(gòu)的原因。首先仔細(xì)考慮BACnet網(wǎng)絡(luò)的獨(dú)特特征。BACnet的特征主要有以下兩點(diǎn): (1)&
11、#160;BACnet網(wǎng)絡(luò)是一種局域網(wǎng)。即使在某些應(yīng)用中,樓宇中設(shè)備間遠(yuǎn)距離的通信必不可少時(shí),這一點(diǎn)仍然是不變的。這種遠(yuǎn)距離的通信功能,是由電信網(wǎng)來(lái)實(shí)現(xiàn)。通信過(guò)程中要解決的路由、中繼、可靠傳輸?shù)葐?wèn)題,都由電信網(wǎng)來(lái)處理。在此電信網(wǎng)可看成是BACnet網(wǎng)絡(luò)外部的部分。 (2) BACnet設(shè)備是靜態(tài)的,即在空間上,它們不會(huì)經(jīng)常被移來(lái)移去。在要完成的功能上,從某種意義上說(shuō)也是不變的,即不會(huì)今天生產(chǎn)的設(shè)備的功能是這樣,明天就完全不同了。 在充分了解BACnet網(wǎng)絡(luò)的特征后,就可討論OSI模型的各層在BACnet網(wǎng)絡(luò)中的適用性了。OSI模型的物理層提供了設(shè)備間的物理連接,以
12、及傳輸載波信號(hào)的方式。顯然在BACnet協(xié)議中,物理層是必不可少的。 OSI模型的數(shù)據(jù)鏈路層,負(fù)責(zé)將數(shù)據(jù)組織成幀(Frame)或分組(Packet)、管理通訊介質(zhì)的訪問(wèn)、尋址(Address),以及完成一些錯(cuò)誤校正(Error Recovery)和流量控制。這些都是BACnet協(xié)議所需要的,因此數(shù)據(jù)鏈路層也是必不可少的。 OSI網(wǎng)絡(luò)層的功能,包括將全局地址解析為局部地址,在一個(gè)或多個(gè)網(wǎng)絡(luò)中進(jìn)行報(bào)文的路由,協(xié)調(diào)不同類型網(wǎng)絡(luò)的差異(如不同網(wǎng)絡(luò)所允許的最大報(bào)文長(zhǎng)度),序列控制,流量控制,差錯(cuò)控制,以及多路復(fù)用。由于BACnet網(wǎng)絡(luò)的拓?fù)涮攸c(diǎn),在各個(gè)設(shè)備之間只存在一條邏輯
13、通路(參見(jiàn)圖3),這樣便不需要最優(yōu)路由的算法。其次,BACnet網(wǎng)絡(luò)是由中繼器或網(wǎng)橋互聯(lián)起來(lái)的一個(gè)或多個(gè)網(wǎng)段所組成的網(wǎng)絡(luò),它具有單一的局部地址空間。在這樣一種單一網(wǎng)絡(luò)中,許多OSI網(wǎng)絡(luò)層的功能也變得多余,或者與數(shù)據(jù)鏈路層相重復(fù)。當(dāng)然在某些BACnet網(wǎng)絡(luò)系統(tǒng)中,網(wǎng)絡(luò)層也可能是必不可少的。例如,在一個(gè)BACnet的網(wǎng)際網(wǎng)(internet)中,當(dāng)兩個(gè)或多個(gè)網(wǎng)絡(luò)使用了不同的MAC層時(shí),便需要區(qū)別局部地址和全局地址,這樣才能將報(bào)文路由到正確的網(wǎng)絡(luò)上去。在BACnet協(xié)議中,通過(guò)定義了一個(gè)包含必要的尋徑和控制信息的網(wǎng)絡(luò)層頭部,來(lái)完成這種簡(jiǎn)化了的網(wǎng)絡(luò)層功能。 傳輸層主要是負(fù)責(zé)提供可靠的端到端的
14、報(bào)文傳輸、報(bào)文分段、序列控制、流量控制,以及差錯(cuò)校正。傳輸層的許多功能與數(shù)據(jù)鏈路層相似,只是在作用范圍上有所不同。傳輸層提供的是端到端的服務(wù),而數(shù)據(jù)鏈路層則提供的是單一網(wǎng)絡(luò)上點(diǎn)到點(diǎn)的服務(wù)。由于BACnet支持多種網(wǎng)絡(luò)的配置,因此協(xié)議必須提供傳輸層端到端的服務(wù)。在BACnet網(wǎng)絡(luò)中要提供三個(gè)方面的傳輸層的功能,第一是可靠的端到端傳輸和差錯(cuò)校正功能,第二是報(bào)文分段和端到端的流量控制,第三是實(shí)現(xiàn)報(bào)文的正確重組,序列控制。由于BACnet是建立在無(wú)連接的通信模型基礎(chǔ)上的,因此所需的服務(wù)大大減少,并且可以被高層來(lái)實(shí)現(xiàn),所以,傳輸層的這些功能可以通過(guò)BACnet應(yīng)用層來(lái)實(shí)現(xiàn),這樣,在BACnet協(xié)議體系中
15、不單獨(dú)設(shè)置傳輸層,相應(yīng)的功能放在應(yīng)用層中完成,從而節(jié)省了通信開(kāi)銷。 會(huì)話層的功能是在通信雙方之間建立和管理長(zhǎng)時(shí)間對(duì)話。包括建立同步標(biāo)志點(diǎn),用來(lái)在出錯(cuò)時(shí)回復(fù)到前一個(gè)標(biāo)志點(diǎn),以避免對(duì)話重新開(kāi)始。但在一個(gè)BACnet網(wǎng)絡(luò)中,絕大部分的通信都是很簡(jiǎn)短的,比如讀寫一個(gè)或一些值,通知某個(gè)設(shè)備某個(gè)警報(bào)或事件,或者更改某個(gè)設(shè)定值。當(dāng)然長(zhǎng)時(shí)間的信息交換偶然也會(huì)發(fā)生的,比如上載或下載某個(gè)設(shè)備。由于絕大部分事務(wù)處理都是簡(jiǎn)短的,會(huì)話層的服務(wù)極少用到,再考慮到帶來(lái)的開(kāi)銷,因此BACnet標(biāo)準(zhǔn)中不包括這層。 表示層為通信雙方提供了屏蔽下層傳送語(yǔ)法的服務(wù)。這種傳送語(yǔ)法是用來(lái)將應(yīng)用層中抽象的用戶數(shù)據(jù)表示,
16、變成適合下層傳輸?shù)淖止?jié)序列。但當(dāng)只存在一種傳送語(yǔ)法時(shí),表示層的功能便減少到對(duì)應(yīng)用程序的數(shù)據(jù)進(jìn)行編碼。由于在BACnet在應(yīng)用層中定義了一個(gè)固定的編碼方案,因此一個(gè)獨(dú)立的表示層也變得不再需要。 協(xié)議的應(yīng)用層為應(yīng)用程序提供了完成各自功能所需的通信服務(wù)。在此基礎(chǔ)上,應(yīng)用程序可以監(jiān)控HVAC&R和其它樓宇自控系統(tǒng)。顯然應(yīng)用層是本協(xié)議所必需的。 從以上討論中,可以得到以下幾點(diǎn): 1 實(shí)現(xiàn)一個(gè)完全的OSI七層體系結(jié)構(gòu)需要大量的資源和開(kāi)銷,因此它對(duì)于目前的樓宇自控系統(tǒng)是不適用的。 2 根據(jù)OSI模型,
17、采用現(xiàn)有的計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)將會(huì)帶來(lái)以下好處:節(jié)約成本,便于與其它計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)集成。 3 根據(jù)樓宇自控系統(tǒng)的環(huán)境及要求,可以通過(guò)去除OSI某些層的功能來(lái)簡(jiǎn)化OSI模型。4 由物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層和應(yīng)用層組成的一個(gè)簡(jiǎn)化體系結(jié)構(gòu),是當(dāng)今樓宇自控系統(tǒng)的最佳解決方案。§1.3 BAC網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為了應(yīng)用的靈活性,BACnet并沒(méi)有嚴(yán)格規(guī)定網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)。BACnet設(shè)備可以通過(guò)專線或撥號(hào)異步串行線,與四種局域網(wǎng)之一進(jìn)行物理相連。而這些網(wǎng)絡(luò)可以通過(guò)BACnet路由器或一對(duì)半路由器進(jìn)一步互聯(lián)。 在BACnet網(wǎng)絡(luò)中,
18、定義了如下這樣一些拓?fù)浣Y(jié)構(gòu): 1. 物理網(wǎng)段(Physical Segment):直接連接一些BACnet設(shè)備的一段物理介質(zhì)。 2. 網(wǎng)段(Segment):多個(gè)物理網(wǎng)段通過(guò)“中繼器”在物理層連接,所形成的網(wǎng)絡(luò)段。 3. 網(wǎng)絡(luò)(Network):多個(gè)BACnet網(wǎng)段通過(guò)“網(wǎng)橋”互連而成,每個(gè)BACnet網(wǎng)絡(luò)都形成一個(gè)單一的MAC地址域。這些在物理層和數(shù)據(jù)鏈路層上連接各個(gè)網(wǎng)段的設(shè)備,可以利用MAC地址實(shí)現(xiàn)報(bào)文的過(guò)濾。 4. 網(wǎng)際網(wǎng)(Internetwork):將使用不同LAN技術(shù)的多個(gè)網(wǎng)絡(luò),用BACn
19、et“路由器”互聯(lián)起來(lái),便形成了一個(gè)BACnet“網(wǎng)際網(wǎng)”。在一個(gè)BACnet網(wǎng)際網(wǎng)中,任意兩個(gè)節(jié)點(diǎn)之間恰好存在著一條報(bào)文通路。這些概念如圖1-3所示。§1.4 BACnet的協(xié)議棧和數(shù)據(jù)流在BACnet中,兩個(gè)對(duì)等應(yīng)用進(jìn)程間的信息交換,依然按照OSI技術(shù)報(bào)告中關(guān)于ISO的服務(wù)慣例(ISO TR 8509),被表示成抽象的服務(wù)原語(yǔ)的交換。BACnet定義了四種服務(wù)原語(yǔ):請(qǐng)求、指示、響應(yīng)和證實(shí)原語(yǔ),用來(lái)傳遞某些特定的服務(wù)參數(shù)。而包含這些原語(yǔ)的信息,又是由BACnet標(biāo)準(zhǔn)中定義的各種協(xié)議數(shù)據(jù)單元(PDU:Protocol D
20、ata Unit)來(lái)傳遞的。 當(dāng)應(yīng)用程序需要同遠(yuǎn)地的應(yīng)用進(jìn)程通訊時(shí),它通過(guò)調(diào)用API訪問(wèn)本地的BACnet用戶單元(應(yīng)用層中為用戶應(yīng)用程序提供服務(wù)的訪問(wèn)點(diǎn))。API的某些參數(shù),如接收服務(wù)請(qǐng)求的設(shè)備的標(biāo)志號(hào)(或地址)、協(xié)議控制信息等,將直接下傳到網(wǎng)絡(luò)層或數(shù)據(jù)鏈路層。而其余參數(shù)將組成一個(gè)應(yīng)用層服務(wù)原語(yǔ),通過(guò)BACnet的用戶單元傳到BACnet的應(yīng)用服務(wù)單元(應(yīng)用層中利用下層服務(wù)完成應(yīng)用層服務(wù)的部分)。 從概念上來(lái)講,由應(yīng)用層服務(wù)原語(yǔ)產(chǎn)生的應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU),構(gòu)成了網(wǎng)絡(luò)層服務(wù)原語(yǔ)的數(shù)據(jù)部分,并通過(guò)網(wǎng)絡(luò)層服務(wù)訪問(wèn)點(diǎn)下傳到網(wǎng)絡(luò)層。同樣,這個(gè)請(qǐng)求將進(jìn)一步下傳到本
21、地設(shè)備協(xié)議棧的以下各層。整個(gè)過(guò)程如圖1-4所示(見(jiàn)下一頁(yè))。 于是,報(bào)文就這樣被傳送到遠(yuǎn)地的設(shè)備,并在遠(yuǎn)地設(shè)備協(xié)議棧中逐級(jí)上傳,最后指示原語(yǔ)看起來(lái)似乎是直接從遠(yuǎn)地的BACnet應(yīng)用服務(wù)單元上傳到遠(yuǎn)地的BACnet用戶單元。任何從遠(yuǎn)地設(shè)備發(fā)回的響應(yīng),也是以該方式回傳給請(qǐng)求設(shè)備的。 BACnet協(xié)議采用的分層思想,來(lái)源與一個(gè)簡(jiǎn)單的科學(xué)原理分層原理(Layering Principle)。即“在目標(biāo)計(jì)算機(jī)上的第N層軟件必須恰好接收由在發(fā)送計(jì)算機(jī)上的第N層軟件所發(fā)送的數(shù)據(jù)”。換句話說(shuō),在數(shù)據(jù)發(fā)送前,協(xié)議進(jìn)行的任何轉(zhuǎn)換在接收時(shí)必須被完全地逆轉(zhuǎn)換。如果在發(fā)送計(jì)算機(jī)上的一個(gè)特
22、定層將一個(gè)頭部放入幀中,在接收計(jì)算機(jī)的相應(yīng)層必須除去該頭部。分層思想簡(jiǎn)化了協(xié)議的設(shè)計(jì)和測(cè)試,避免了一層協(xié)議軟件引入其它層可見(jiàn)的改變。這樣,每一層的發(fā)送和接收軟件可獨(dú)立于其它層進(jìn)行設(shè)計(jì)、實(shí)現(xiàn)、測(cè)試。第2章 BACnet應(yīng)用層規(guī)范本章介紹BACnet的應(yīng)用層規(guī)范的原理和運(yùn)行機(jī)制,概要介紹BACnet應(yīng)用層的模型、主要的服務(wù)原語(yǔ)以及應(yīng)用層報(bào)文的結(jié)構(gòu),并討論BACnet各種報(bào)文的傳輸過(guò)程以及與報(bào)文傳輸相關(guān)的其它問(wèn)題。 §2.1 BACnet協(xié)議的應(yīng)用層規(guī)范BACnet網(wǎng)絡(luò)的應(yīng)用層協(xié)議要解決三個(gè)問(wèn)題,向應(yīng)用程序提供通信服務(wù)的規(guī)范,與下層協(xié)議
23、進(jìn)行信息交換的規(guī)范,和與對(duì)等的遠(yuǎn)程應(yīng)用層實(shí)體交互的規(guī)范。首先對(duì)一些相關(guān)的概念進(jìn)行說(shuō)明。 應(yīng)用進(jìn)程是指,為了實(shí)現(xiàn)某個(gè)特定的應(yīng)用(例如,節(jié)點(diǎn)設(shè)備向一個(gè)遠(yuǎn)端的溫度傳感器設(shè)備請(qǐng)求當(dāng)前溫度值)所需要的進(jìn)行信息處理的一組方法。一般來(lái)說(shuō),這是一組計(jì)算機(jī)軟件。 應(yīng)用進(jìn)程分為兩部分,一部分專門進(jìn)行信息處理,不涉及通信功能,這部分稱為應(yīng)用程序。另一部分處理BACnet通信事務(wù),稱為應(yīng)用實(shí)體。應(yīng)用程序與應(yīng)用實(shí)體之間通過(guò)應(yīng)用編程接口(API)進(jìn)行交互。BACnet應(yīng)用層協(xié)議只對(duì)應(yīng)用實(shí)體進(jìn)行規(guī)范,不涉及應(yīng)用程序和應(yīng)用編程接口。但在具體實(shí)現(xiàn)過(guò)程中,應(yīng)用編程接口一定是某個(gè)函數(shù)、過(guò)程或子程序的調(diào)用。
24、60;圖2-1示出了這些概念,圖中陰影部分是應(yīng)用進(jìn)程位于BACnet應(yīng)用層中的部分。應(yīng)用實(shí)體本身又由兩部分組成,分別是BACnet用戶單元和BACnet應(yīng)用服務(wù)單元(ASE)。應(yīng)用服務(wù)單元是一組特定內(nèi)容的應(yīng)用服務(wù),這些應(yīng)用服務(wù)包括:報(bào)警與事件服務(wù),文件訪問(wèn)服務(wù),對(duì)象訪問(wèn)服務(wù),遠(yuǎn)程設(shè)備管理服務(wù),虛擬終端服務(wù),和網(wǎng)絡(luò)安全性。用戶單元的功能是支持本地API,負(fù)責(zé)保存事務(wù)處理的上下文信息,產(chǎn)生請(qǐng)求標(biāo)志符(ID),記錄標(biāo)志符所對(duì)應(yīng)的應(yīng)用服務(wù)響應(yīng),維護(hù)超時(shí)重傳機(jī)制所需的超時(shí)計(jì)數(shù)器,以及將設(shè)備的行為要求映射成為BACnet的對(duì)象。我們將在后續(xù)的文章中介紹這些應(yīng)用服務(wù)和對(duì)象的內(nèi)容。 “BACnet設(shè)
25、備”是指任何一種支持用BACnet協(xié)議進(jìn)行數(shù)字通信的真實(shí)的或者虛擬的設(shè)備。一個(gè)BACnet設(shè)備有且只有一個(gè)“設(shè)備對(duì)象”,而且被一個(gè)網(wǎng)絡(luò)號(hào)和一個(gè)MAC地址唯一確定。在大多數(shù)情況下,一個(gè)物理設(shè)備就是一個(gè)BACnet設(shè)備,例如一個(gè)支持BACnet協(xié)議通信的溫度傳感器就是一個(gè)BACnet設(shè)備。但是也可能有一個(gè)物理設(shè)備具有多個(gè)“虛擬的” BACnet設(shè)備的功能,在BACnet標(biāo)準(zhǔn)的附件H中對(duì)此進(jìn)行了詳細(xì)規(guī)范。 當(dāng)一個(gè)BACnet設(shè)備中的應(yīng)用程序需要與網(wǎng)絡(luò)中其它BACnet設(shè)備中的應(yīng)用程序進(jìn)行通信時(shí),應(yīng)用程序只需通過(guò)調(diào)用API訪問(wèn)本地的BACnet用戶單元來(lái)實(shí)現(xiàn)。例如,一個(gè)BACnet
26、 設(shè)備的應(yīng)用程序要向一個(gè)遠(yuǎn)地設(shè)備的應(yīng)用程序發(fā)送一個(gè)請(qǐng)求服務(wù)信息,它調(diào)用API,并將相應(yīng)的參數(shù)填入API中。API中的某些參數(shù),如服務(wù)請(qǐng)求接收設(shè)備的標(biāo)志號(hào)(或地址)、協(xié)議控制信息等,將直接下傳到網(wǎng)絡(luò)層或數(shù)據(jù)鏈路層;其余參數(shù)則組成一個(gè)應(yīng)用層服務(wù)原語(yǔ),通過(guò)BACnet用戶單元傳到BACnet應(yīng)用服務(wù)單元(ASE),形成應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU)。APDU則通過(guò)網(wǎng)絡(luò)層的服務(wù)訪問(wèn)點(diǎn)(NSAP)下傳到網(wǎng)絡(luò)層,成為網(wǎng)絡(luò)層服務(wù)原語(yǔ)的數(shù)據(jù)部分。這個(gè)請(qǐng)求將進(jìn)一步下傳到本地設(shè)備協(xié)議棧中的下層,最終由物理層傳送到遠(yuǎn)地設(shè)備,并通過(guò)遠(yuǎn)地設(shè)備協(xié)議棧逐級(jí)上傳到遠(yuǎn)地用戶單元。從遠(yuǎn)地設(shè)備看起來(lái),指示原語(yǔ)似乎是直接從
27、它自己的BACnet應(yīng)用服務(wù)單元傳到其BACnet用戶單元的。同樣,任何從遠(yuǎn)地設(shè)備發(fā)回的響應(yīng),也是以相同方式回傳給請(qǐng)求設(shè)備。 BACnet應(yīng)用層協(xié)議包含了OSI模型中的應(yīng)用層到傳輸層中的相應(yīng)內(nèi)容,所以除了應(yīng)用層服務(wù)的功能外,還要有端到端可靠傳輸?shù)墓δ?。因此,BACnet應(yīng)用層規(guī)范就是為了保證BACnet設(shè)備的應(yīng)用程序能夠與網(wǎng)絡(luò)中遠(yuǎn)地BACnet設(shè)備的應(yīng)用程序進(jìn)行端到端可靠通信而制定的一組規(guī)則,其主要內(nèi)容包括:BACnet應(yīng)用層提供的服務(wù)類型,上下層之間交換的接口控制信息,和對(duì)等層協(xié)議數(shù)據(jù)單元的傳輸機(jī)制。 §2.2 BACnet應(yīng)用層服務(wù)類型&
28、#160;BACnet的應(yīng)用層提供兩種類型的服務(wù),分別是“證實(shí)服務(wù)”和“非證實(shí)服務(wù)”。 在BACnet中,兩個(gè)對(duì)等應(yīng)用進(jìn)程間的信息交換,根據(jù)ISO的服務(wù)慣例,被表示成抽象的服務(wù)原語(yǔ)的交換。BACnet定義了四種服務(wù)原語(yǔ):請(qǐng)求(Request)、指示(Indication)、響應(yīng)(Response)以及證實(shí)(Confirm)原語(yǔ),可以用來(lái)傳遞某些特定的服務(wù)參數(shù)。而包含這些原語(yǔ)的信息,又是由標(biāo)準(zhǔn)中定義的各種協(xié)議數(shù)據(jù)單元(PDU)來(lái)傳遞的。下面列出各種服務(wù)原語(yǔ): CONF_SERV. response CONF_SERV. Confirm
29、CONF_SERV. Request CONF_SERV. indication UNCONF_SERV. request UNCONF_SERV. indication SEGMENT_ACK. request SEGMENT_ACK. request ERROR. request ERROR. indication REJECT. request REJECT.
30、160;indication ABORT. request ABORT. indication CONF_SERV的標(biāo)識(shí)表明使用的是BACnet證實(shí)服務(wù)PDU。UNCONF_SERV、SEGMENT_ACK、ERROR、REJECT和ABOUT,分別表明使用的是非證實(shí)服務(wù)PDU、分段回應(yīng)PDU、出錯(cuò)PDU、拒絕PDU和放棄PDU,后面這些都是非證實(shí)服務(wù)類型。 證實(shí)服務(wù)是建立在客戶/服務(wù)器通信模型的基礎(chǔ)上的,客戶端通過(guò)某個(gè)服務(wù)請(qǐng)求實(shí)例,向服務(wù)器請(qǐng)求服務(wù),而服務(wù)器則通過(guò)響應(yīng)請(qǐng)求來(lái)為客戶端提供服務(wù),如圖2-2所示。在交互過(guò)程中,擔(dān)當(dāng)客戶角色
31、的BACnet用戶,稱為請(qǐng)求方BACnet用戶;擔(dān)當(dāng)服務(wù)器角色的BACnet用戶,稱為響應(yīng)方BACnet用戶。證實(shí)服務(wù)的具體過(guò)程如下:由請(qǐng)求方BACnet用戶發(fā)出的一個(gè)CONF_SERV. request原語(yǔ),形成請(qǐng)求PDU發(fā)送給響應(yīng)方BACnet用戶。當(dāng)該請(qǐng)求PDU到達(dá)響應(yīng)方BACnet用戶時(shí),響應(yīng)方BACnet用戶則收到一個(gè)CONF_SERV. indication原語(yǔ)。同樣,由響應(yīng)方BACnet用戶發(fā)出的一個(gè)CONF_SERV. response原語(yǔ),形成響應(yīng)PDU回傳給請(qǐng)求方BACnet用戶。當(dāng)響應(yīng)PDU到達(dá)請(qǐng)求方BACnet用戶時(shí),請(qǐng)求方BACnet用戶
32、則收到一個(gè)CONF_SERV. CONF_SERV. confirm原語(yǔ)。因此,整個(gè)過(guò)程中請(qǐng)求方BACnet用戶和響應(yīng)方BACnet用戶都要接收和發(fā)送PDU。 在非證實(shí)服務(wù)中,不存在上述客戶/服務(wù)器模型、“請(qǐng)求方BACnet用戶”和“響應(yīng)方BACnet用戶”等概念,只有“發(fā)送方BACnet用戶”和“接收方BACnet用戶”。前者指的是發(fā)送PDU的BACnet用戶,后者指的是當(dāng)一個(gè)PDU到達(dá)時(shí),接收到一個(gè)指示(indication)或證實(shí)(confirm)的BACnet用戶。圖2-3為正常的證實(shí)服務(wù)報(bào)文傳遞的示意圖,圖2-4為正常的非證實(shí)服務(wù)報(bào)文傳遞的示意圖。
33、67;2.3 BACnet應(yīng)用層報(bào)文分析 應(yīng)用層接口控制信息 除了服務(wù)原語(yǔ)和服務(wù)參數(shù)外,應(yīng)用實(shí)體還通過(guò)API與應(yīng)用程序交換各種接口控制信息(ICI)參數(shù),其具體內(nèi)容取決于服務(wù)原語(yǔ)的類型。應(yīng)用實(shí)體接收到的ICI參數(shù)將下傳到下面各層,以便于各層PDU的構(gòu)建。而應(yīng)用實(shí)體回傳給應(yīng)用程序的ICI參數(shù),則包含了其以下各層從各自的PDU中得到的信息。 通過(guò)API與各種服務(wù)原語(yǔ)交換信息的ICI參數(shù)包括: 1. “目的地址”(DA:):將要接收服務(wù)原語(yǔ)設(shè)備的地址。其格式(如設(shè)備名稱、網(wǎng)絡(luò)地址等)只與本地有關(guān)。這個(gè)地址也可以是多播地址、本地
34、廣播地址或全局廣播地址類型。 2. “源地址”(SA):發(fā)送服務(wù)原語(yǔ)的設(shè)備的地址。其格式只與本地有關(guān)。 3. “網(wǎng)絡(luò)優(yōu)先權(quán)”(NP):表示網(wǎng)絡(luò)優(yōu)先權(quán)的參數(shù)。 4. “需回復(fù)數(shù)據(jù)”(DER):一個(gè)邏輯值參數(shù),用來(lái)指明某個(gè)服務(wù)是否需要一個(gè)回復(fù)服務(wù)原語(yǔ)來(lái)確認(rèn)。 應(yīng)用層協(xié)議數(shù)據(jù)單元的編碼 在BACnet中,使用應(yīng)用層協(xié)議數(shù)據(jù)單元(APDU)來(lái)傳遞包含在應(yīng)用服務(wù)原語(yǔ)和相應(yīng)的參數(shù)中的信息。BACnet選擇ISO Standard 8824規(guī)范中的方法來(lái)表征BACnet服務(wù)的數(shù)據(jù)內(nèi)容。并且,B
35、ACnet規(guī)定了APDU的編碼內(nèi)容,這些編碼內(nèi)容在BACnet標(biāo)準(zhǔn)中的有關(guān)章節(jié)中進(jìn)行了詳細(xì)的描述。 BACnet的APDU由協(xié)議控制信息(PCI)和用戶數(shù)據(jù)兩部分組成。PCI中包含進(jìn)行應(yīng)用層協(xié)議操作所需要的數(shù)據(jù),這些數(shù)據(jù)包括:APDU的類型,匹配服務(wù)請(qǐng)求和服務(wù)響應(yīng)的信息,執(zhí)行分段報(bào)文重組的信息。這些信息包含在報(bào)文的頭部,也稱為APDU的固定部分。用戶數(shù)據(jù)中包含每種服務(wù)請(qǐng)求和服務(wù)響應(yīng)的具體信息,這部分也稱為APDU的可變部分。 BACnet報(bào)文的分段 為了實(shí)現(xiàn)長(zhǎng)報(bào)文(長(zhǎng)度大于通信網(wǎng)絡(luò)、收/發(fā)設(shè)備所支持的長(zhǎng)度)的傳輸,有必要對(duì)報(bào)文進(jìn)行分段。在BACnet體系結(jié)構(gòu)中,
36、不存在單獨(dú)的傳輸層,因此報(bào)文分段不是由傳輸層實(shí)現(xiàn),而是由應(yīng)用層來(lái)完成。并且,在BACnet中只有Confirmed-Request和Complex-ACK報(bào)文可能需要分段,因此分段還是BACnet的一個(gè)可選特性。 1報(bào)文分段的原則 每個(gè)由BACnet報(bào)文編碼而成的數(shù)據(jù)流序列,按下面規(guī)則進(jìn)行分段,然后再在網(wǎng)上傳輸。 一個(gè)完整的報(bào)文盡可能作為一個(gè)APDU發(fā)送。 當(dāng)一個(gè)完整的報(bào)文不可能作為一個(gè)APDU發(fā)送時(shí),則應(yīng)分段成最少個(gè)數(shù)的多個(gè)APDU發(fā)送。 一個(gè)報(bào)文分段的長(zhǎng)度(以bit為單位)應(yīng)是8的整數(shù)倍,即對(duì)報(bào)文進(jìn)行分段
37、時(shí),字節(jié)是最小的分割單位。 2BACnet APDU最大長(zhǎng)度的確定 在BACnet中,APDU的長(zhǎng)度也是沒(méi)有固定的,而是定義了一個(gè)確定APDU最大長(zhǎng)度的原則,即APDU最大長(zhǎng)度應(yīng)是以下長(zhǎng)度值中的最小值: 設(shè)備所能發(fā)送的APDU的最大長(zhǎng)度。一般與本地設(shè)備的緩沖區(qū)大小等本地因素有關(guān)。 BACnet網(wǎng)際網(wǎng)所能傳輸?shù)竭h(yuǎn)地設(shè)備的APDU的最大長(zhǎng)度。一般由本地、遠(yuǎn)地,以及中間傳輸網(wǎng)絡(luò)的數(shù)據(jù)鏈路所決定。 遠(yuǎn)地設(shè)備所能接收的APDU的最大長(zhǎng)度,其值不能小于50個(gè)字節(jié)。 3與分段有關(guān)的協(xié)議控制信息(PCI)
38、 為了支持報(bào)文分段,BACnet 協(xié)議在BACnet-Confirmed-Request-PDU和BACnet-ComplexACK-PDU的頭部,定義了四個(gè)與分段有關(guān)的協(xié)議控制信息參數(shù)。其中兩個(gè)是布爾型參數(shù),另兩個(gè)是八位二進(jìn)制無(wú)符號(hào)整數(shù)。這些參數(shù)可以使接收方對(duì)到達(dá)的分段進(jìn)行正確的重組,從而保證端到端的可靠傳輸。 §2.4 BACnet APDU的傳輸BACnet的APDU收發(fā)協(xié)議的詳細(xì)細(xì)節(jié),包含在BACnet復(fù)雜的事務(wù)狀態(tài)機(jī)制(TSM:Transaction State Machine)中,以下的討論
39、旨在對(duì)幾種主要APDU的傳輸過(guò)程有整體的認(rèn)識(shí)。 2.4.1證實(shí)請(qǐng)求報(bào)文的傳輸 客戶端設(shè)備在傳輸了一個(gè)完整未分段的證實(shí)請(qǐng)求報(bào)文(Confirmed-Request Message)后,或在等待接收分段證實(shí)請(qǐng)求報(bào)文最后一個(gè)分段所對(duì)應(yīng)的確認(rèn)信息時(shí),將啟動(dòng)一個(gè)計(jì)時(shí)器。該計(jì)時(shí)器用來(lái)計(jì)量對(duì)請(qǐng)求報(bào)文回應(yīng)的時(shí)間。一旦收到了針對(duì)該請(qǐng)求報(bào)文所發(fā)的出錯(cuò)APDU、拒絕APDU、放棄APDU、簡(jiǎn)單回應(yīng)APDU或復(fù)雜回應(yīng)APDU,則停止計(jì)時(shí),同時(shí)通知客戶應(yīng)用程序。如果計(jì)時(shí)器的時(shí)間值超出了客戶設(shè)備對(duì)象的APDU_TimeOut屬性值,則整個(gè)報(bào)文重新發(fā)送,計(jì)時(shí)器重新計(jì)時(shí)。所有報(bào)文的超時(shí)重傳均按此
40、過(guò)程進(jìn)行,直至重傳次數(shù)超出了客戶端設(shè)備對(duì)象“APDU重傳次數(shù)”屬性所規(guī)定的次數(shù)。若超出規(guī)定值仍未收到響應(yīng),該報(bào)文將被丟棄,同時(shí)通知客戶應(yīng)用程序。 2.4.2分段證實(shí)請(qǐng)求報(bào)文的傳輸 客戶端設(shè)備在發(fā)送分段證實(shí)請(qǐng)求(Segmented Confirmed-Request Message)PDU的第一個(gè)分段之前,首先選擇一個(gè)預(yù)設(shè)窗口值,以表示它在收到一個(gè)分段回應(yīng)之前,一次準(zhǔn)備發(fā)送的報(bào)文分段最大個(gè)數(shù)。它通常由報(bào)文分段的“建議窗口尺寸”參數(shù)表示,取值范圍為1至127,在該處其具體取值只與客戶端有關(guān)。在傳輸完第一個(gè)分段后,客戶端設(shè)備將啟動(dòng)一個(gè)計(jì)時(shí)器,用來(lái)計(jì)量對(duì)報(bào)文分段
41、回應(yīng)的時(shí)間。一旦收到了針對(duì)該報(bào)文分段所發(fā)的拒絕APDU、放棄APDU或分組回應(yīng)APDU,則停止計(jì)時(shí),同時(shí)通知客戶應(yīng)用程序。如果計(jì)時(shí)器的時(shí)間值超出了客戶設(shè)備對(duì)象的APDU_Segment_TimeOut屬性值,則這個(gè)分段將重新發(fā)送,計(jì)時(shí)器重新計(jì)時(shí)。所有報(bào)文分段的超時(shí)重傳均按此過(guò)程進(jìn)行,直至重傳次數(shù)超出了客戶端設(shè)備對(duì)象中“APDU重傳次數(shù)”屬性所規(guī)定的次數(shù)。若超出規(guī)定值仍未收到響應(yīng),該報(bào)文將被丟棄,同時(shí)通知客戶應(yīng)用程序。 當(dāng)服務(wù)端設(shè)備收到分段證實(shí)請(qǐng)求PDU的第一個(gè)分段后,將會(huì)選擇一個(gè)實(shí)際窗口值,以表示它在發(fā)送一個(gè)分段回應(yīng)前,一次準(zhǔn)備接收的報(bào)文分段最大個(gè)數(shù)。同樣,該值的取值范圍也規(guī)定在1至
42、127之間,同時(shí)它還不能大于證實(shí)請(qǐng)求PDU中的預(yù)設(shè)窗口值,在該處其具體取值只與服務(wù)器端有關(guān)。 在收到第一個(gè)分組回應(yīng)APDU后,客戶端設(shè)備從中得到服務(wù)器端設(shè)備的實(shí)際窗口值,并將該值設(shè)置成它的實(shí)際窗口值。這樣,客戶端設(shè)備和服務(wù)器端設(shè)備的實(shí)際窗口值大小一致??蛻舳吮憧梢栽谑盏揭粋€(gè)分段回應(yīng)APDU之前,一次發(fā)送多個(gè)分段;服務(wù)器端也可以在發(fā)送一個(gè)分段回應(yīng)APDU之前,一次接收多個(gè)分段??蛻舳税l(fā)送完整個(gè)報(bào)文或發(fā)送了窗口值個(gè)數(shù)的多個(gè)分段后,將啟動(dòng)一個(gè)計(jì)時(shí)器,用來(lái)計(jì)量對(duì)這些報(bào)文分段回應(yīng)的時(shí)間。一旦收到了針對(duì)這些報(bào)文分段所發(fā)的拒絕APDU、放棄APDU或分組回應(yīng)APDU,則停止計(jì)時(shí)。如果計(jì)時(shí)器的時(shí)間值
43、超出了客戶設(shè)備對(duì)象的APDU_Segment_TimeOut屬性值,則這些分段將重新發(fā)送,計(jì)時(shí)器重新計(jì)時(shí)。所有報(bào)文分段的超時(shí)重傳均按此過(guò)程進(jìn)行,直至重傳次數(shù)超出了客戶端設(shè)備對(duì)象中“APDU重傳次數(shù)”屬性所規(guī)定的次數(shù)。若超出規(guī)定值仍未收到響應(yīng),該報(bào)文將被丟棄,同時(shí)通知客戶應(yīng)用程序。 客戶端在發(fā)送分段的過(guò)程中,可能會(huì)收到拒絕APDU、放棄APDU或分段回應(yīng)APDU。在這種情況下,收到拒絕APDU或放棄APDU將會(huì)中止請(qǐng)求的傳輸;收到分段回應(yīng)APDU,將會(huì)作為序號(hào)等于或小于該APDU中分段數(shù)參數(shù)值的所有分段的確認(rèn),而那些沒(méi)有被確認(rèn)的分段將按上述過(guò)程重傳。 2.4.3分段復(fù)雜回應(yīng)報(bào)
44、文的傳輸 分段復(fù)雜回應(yīng)報(bào)文(Segmented ComplexACK Message)的傳輸過(guò)程與分段證實(shí)請(qǐng)求報(bào)文的傳輸過(guò)程相類似,主要不同之處在于: 在分段復(fù)雜回應(yīng)報(bào)文的傳輸過(guò)程中,由服務(wù)器端設(shè)備發(fā)送復(fù)雜回應(yīng)報(bào)文的分段,由客戶端設(shè)備接收并發(fā)分段回應(yīng)APDU 在分段復(fù)雜回應(yīng)報(bào)文的傳輸過(guò)程中,客戶端設(shè)備只能回應(yīng)放棄APDU或分段回應(yīng)APDU,而不能回應(yīng)拒絕APDU。2.4.4分段回應(yīng)APDU的傳輸 分段回應(yīng)APDU是分段接收方設(shè)備用來(lái)回應(yīng)發(fā)送方的信息。在以下四種情況下,設(shè)備需傳輸一個(gè)SegmentACK。
45、0; 設(shè)備收到報(bào)文的第一個(gè)分段。 設(shè)備收到未確認(rèn)的、有序的、數(shù)量為實(shí)際窗口值的多個(gè)報(bào)文分段構(gòu)成的序列。 設(shè)備收到一個(gè)亂序分段報(bào)文(可能表明丟失了某個(gè)分段)。 設(shè)備收到報(bào)文的最后一個(gè)分段。 §2.5 與傳輸有關(guān)的其它問(wèn)題 2.5.1事務(wù)狀態(tài)機(jī)制的中止 在一個(gè)證實(shí)請(qǐng)求的服務(wù)過(guò)程中,客戶端與服務(wù)器端都將創(chuàng)立各自的事務(wù)狀態(tài)機(jī)制,以便針對(duì)各種情況分別進(jìn)行處理。該事務(wù)狀態(tài)機(jī)制的終止由一些條件所決定。 對(duì)于客戶端,當(dāng)出現(xiàn)以下幾種情況時(shí),事務(wù)處理終止,同時(shí)結(jié)束該事
46、務(wù)狀態(tài)機(jī)制。 當(dāng)收到服務(wù)器端設(shè)備發(fā)來(lái)的簡(jiǎn)單回應(yīng)、不分段復(fù)雜回應(yīng)、出錯(cuò)、拒絕或放棄APDU時(shí)。 收到服務(wù)器發(fā)來(lái)的分段復(fù)雜回應(yīng)APDU的最后一個(gè)分段,并發(fā)送了相應(yīng)的分段回應(yīng)APDU后。 當(dāng)超時(shí)重傳次數(shù)用盡后。 在向服務(wù)器發(fā)送了包含該事務(wù)處理過(guò)程標(biāo)志符的放棄APDU后。 對(duì)于服務(wù)器端當(dāng)出現(xiàn)以下幾種情況時(shí),將終止事務(wù)處理,同時(shí)結(jié)束該事務(wù)狀態(tài)機(jī)制。
47、60; 當(dāng)向客戶端設(shè)備發(fā)送完簡(jiǎn)單回應(yīng)、不分段復(fù)雜回應(yīng)、出錯(cuò)、拒絕或放棄APDU后。 當(dāng)收到客戶端設(shè)備發(fā)來(lái)的針對(duì)分段復(fù)雜回應(yīng)APDU的最后一個(gè)分段的回應(yīng)APDU后。 當(dāng)接收到客戶端發(fā)來(lái)的包含該事務(wù)處理過(guò)程標(biāo)志符的放棄APDU后。 在傳輸一個(gè)分段復(fù)雜回應(yīng)APDU的過(guò)程中,超時(shí)重傳次數(shù)達(dá)到規(guī)定值仍未成功時(shí)。 2.5.2重復(fù)報(bào)文的處理 在一個(gè)事務(wù)處理過(guò)程中,由于使用了BACne
48、t的出錯(cuò)重傳機(jī)制,設(shè)備不可避免的會(huì)接收到重復(fù)的報(bào)文或報(bào)文分段。對(duì)此,BACnet協(xié)議中是按以下各種可能出現(xiàn)的情況分別處理的。 服務(wù)器接收到一個(gè)重復(fù)的證實(shí)請(qǐng)求報(bào)文。這時(shí),如果服務(wù)器具有識(shí)別重復(fù)證實(shí)請(qǐng)求報(bào)文的能力,則該重復(fù)報(bào)文將被服務(wù)器丟棄。否則,服務(wù)器仍會(huì)響應(yīng)這個(gè)重復(fù)的證實(shí)請(qǐng)求報(bào)文。這樣的話,客戶端應(yīng)當(dāng)根據(jù)響應(yīng)中的標(biāo)志符不與任何一個(gè)當(dāng)前的事務(wù)狀態(tài)機(jī)制綁定,來(lái)忽略該重復(fù)響應(yīng)。 服務(wù)器接收到一個(gè)重復(fù)的證實(shí)請(qǐng)求報(bào)文分段,即已經(jīng)收到該分段并發(fā)送了分段確認(rèn)。在這種情況下,服務(wù)器應(yīng)忽略該重復(fù)分段并回傳一個(gè)適當(dāng)?shù)姆侄位貞?yīng)APDU。判斷分段是否
49、重復(fù)的依據(jù)是:任何一個(gè)分段都可以由其對(duì)等方地址、標(biāo)志符以及分段序號(hào)唯一確定。 客戶端接收到一個(gè)重復(fù)的復(fù)雜回應(yīng)分段,即該分段已經(jīng)收到并確認(rèn)了。客戶端應(yīng)忽略該重復(fù)分段并回傳一個(gè)適當(dāng)?shù)姆侄位貞?yīng)APDU。 設(shè)備接收到一個(gè)重復(fù)的分段確認(rèn)APDU。這時(shí),該設(shè)備應(yīng)忽略重復(fù)的分段確認(rèn)APDU。 2.5.3資源的回收 上述BACnet的出錯(cuò)重傳過(guò)程,其具體實(shí)現(xiàn)需要客戶和服務(wù)器兩端提供一定的資源。這些資源通常是事務(wù)處理的各個(gè)細(xì)節(jié),包括事務(wù)狀態(tài)機(jī)制(TSM)、計(jì)時(shí)器以及APDU或APDU分段緩沖區(qū)等。當(dāng)出錯(cuò)重傳過(guò)程
50、失敗時(shí),這些相關(guān)的資源也變得失效,應(yīng)被釋放掉。資源釋放的具體細(xì)節(jié)取決于系統(tǒng)的具體設(shè)計(jì)。作為建議,BACnet協(xié)議給出了資源失效而應(yīng)釋放的依據(jù): 客戶端收到對(duì)一個(gè)證實(shí)請(qǐng)求APDU的完整響應(yīng)后。 在客戶端,當(dāng)一個(gè)證實(shí)請(qǐng)求APDU被重發(fā)了“APDU重發(fā)次數(shù)”屬性所規(guī)定的次數(shù),但仍未成功時(shí)。 在客戶端,當(dāng)一個(gè)證實(shí)請(qǐng)求APDU分段被重發(fā)了“APDU重發(fā)次數(shù)”屬性所規(guī)定的次數(shù),但仍未成功時(shí)。
51、0; 在服務(wù)器端,當(dāng)發(fā)送了對(duì)某個(gè)證實(shí)請(qǐng)求APDU的響應(yīng)并收到相應(yīng)的分段回應(yīng)后。 第3章 BACnet網(wǎng)絡(luò)層規(guī)范本章介紹BACnet協(xié)議網(wǎng)絡(luò)層的原理和運(yùn)行機(jī)制,包括BACnet網(wǎng)絡(luò)層的功能、主要的服務(wù)原語(yǔ)以及網(wǎng)絡(luò)層報(bào)文的結(jié)構(gòu),并簡(jiǎn)要介紹BACnet路由器的運(yùn)行規(guī)程。 §3.1 BACnet網(wǎng)絡(luò)層規(guī)范的內(nèi)容BACnet網(wǎng)絡(luò)層的目的是提供一種方法,使用這種方法,不用考慮網(wǎng)絡(luò)所使用的BACnet數(shù)據(jù)鏈路技術(shù),可以將報(bào)文從一個(gè)BACnet網(wǎng)絡(luò)傳遞到另一個(gè)BACnet網(wǎng)絡(luò)。數(shù)據(jù)鏈路層提供將報(bào)文在本局域網(wǎng)內(nèi)傳遞到某個(gè)設(shè)備或者
52、廣播到所有設(shè)備的能力,而網(wǎng)絡(luò)層則提供將報(bào)文直接傳遞到一個(gè)遠(yuǎn)程的BACnet設(shè)備、廣播到一個(gè)遠(yuǎn)程BACnet網(wǎng)絡(luò)、或者廣播到所有的BACnet網(wǎng)絡(luò)中的所有BACnet設(shè)備的能力。一個(gè)BACnet設(shè)備被一個(gè)網(wǎng)絡(luò)號(hào)碼和一個(gè)MAC地址唯一確定。 我們將那些使用不同的數(shù)據(jù)鏈路層技術(shù)的局域網(wǎng)稱為異類網(wǎng)絡(luò),例如,以太網(wǎng)、ARCNET網(wǎng)絡(luò)和Lonworks網(wǎng)絡(luò)等就是異類網(wǎng)絡(luò)。網(wǎng)絡(luò)層的功能就是實(shí)現(xiàn)連接兩個(gè)異類的BACnet局域網(wǎng)。實(shí)現(xiàn)異類網(wǎng)絡(luò)連接的設(shè)備稱為“BACnet路由器”。從協(xié)議的觀點(diǎn)看,網(wǎng)絡(luò)層的功能是向應(yīng)用層提供統(tǒng)一的網(wǎng)絡(luò)服務(wù)平臺(tái),屏蔽異類網(wǎng)絡(luò)的差異。同時(shí),BACnet網(wǎng)絡(luò)層協(xié)議也建立路由器建
53、立和維護(hù)它們的路由表的方法,這將使得路由器自動(dòng)配置和報(bào)文在路由器之間的流動(dòng)成為可能。 BACnet網(wǎng)絡(luò)層的服務(wù)原語(yǔ) BACnet網(wǎng)絡(luò)層向應(yīng)用層提供的服務(wù)是不確認(rèn)的無(wú)連接形式的數(shù)據(jù)單元傳送服務(wù)。與這種交互相關(guān)的原語(yǔ)是N-UNITDATA請(qǐng)求和指示,其參數(shù)如下: N-UNITDATA.request(destination_address,data,network_priority,data_expecting_reply) N-UNITDATA.indication(source_address,destination_addres
54、s,data,network_priority,data_expecting_reply) “目標(biāo)地址”和“源地址”參數(shù)提供下列事物的邏輯連續(xù)配置:1)一個(gè)可選擇的網(wǎng)絡(luò)號(hào)碼,2)適合于下層LAN技術(shù)的MAC地址,3)鏈路服務(wù)接入點(diǎn)。網(wǎng)絡(luò)號(hào)碼XFFFF表示此報(bào)文廣播到目前能夠到達(dá)的所有網(wǎng)絡(luò)的所有設(shè)備。目前能夠到達(dá)的網(wǎng)絡(luò)是指那些在BACnet互聯(lián)網(wǎng)中已經(jīng)具有一條有效連接的網(wǎng)絡(luò)。“數(shù)據(jù)”參數(shù)是從應(yīng)用層傳遞過(guò)來(lái)的網(wǎng)絡(luò)服務(wù)數(shù)據(jù)單元(NSDU),其中包含一個(gè)完全編碼的BACnet APDU?!熬W(wǎng)絡(luò)優(yōu)先級(jí)”參數(shù)是一個(gè)數(shù)字值,由BACnet路由器中的網(wǎng)絡(luò)層用來(lái)確定任何可能的優(yōu)先于先進(jìn)先出排
55、隊(duì)等待規(guī)則的情況。“data_expecting_reply”參數(shù)指出對(duì)于正在傳送的數(shù)據(jù)單元是否期待有一個(gè)應(yīng)答的數(shù)據(jù)單元。 當(dāng)網(wǎng)絡(luò)層從應(yīng)用層收到一個(gè)N-UNITDATA.request請(qǐng)求原語(yǔ)后,就用網(wǎng)絡(luò)層規(guī)范所表述的方式發(fā)送一個(gè)網(wǎng)絡(luò)層服務(wù)數(shù)據(jù)單元NSDU。當(dāng)一個(gè)網(wǎng)絡(luò)實(shí)體收到從一個(gè)對(duì)等網(wǎng)絡(luò)實(shí)體發(fā)來(lái)的NSDU后,它作如下處理:1)通過(guò)一個(gè)直接連接的網(wǎng)絡(luò)將NSDU發(fā)送到目的地,2)將NSDU發(fā)送到下一個(gè)BACnet路由器后再路由到目的地,3)如果NSDU的地址與它自己的應(yīng)用層中的某個(gè)實(shí)體的地址匹配,則向這個(gè)實(shí)體發(fā)送一個(gè)N-UNITDATA.indication原語(yǔ),通知有一個(gè)NSDU到達(dá)
56、。 BACnet網(wǎng)絡(luò)層PDU結(jié)構(gòu) 圖3-1給出了BACnet網(wǎng)絡(luò)層協(xié)議數(shù)據(jù)單元的分組格式。下面對(duì)相應(yīng)的域進(jìn)行說(shuō)明:1協(xié)議版本號(hào) 每個(gè)NPDU的第一個(gè)字節(jié)是一個(gè)8比特的無(wú)符號(hào)整數(shù),標(biāo)識(shí)BACnet協(xié)議的版本號(hào)。目前的BACnet協(xié)議的版本號(hào)是(1)。 2網(wǎng)絡(luò)層協(xié)議控制信息 NPDU的第二個(gè)字節(jié)是控制字節(jié),表示后面的某個(gè)特殊NPCI域的存在??刂谱止?jié)中每個(gè)比特的作用如下:3特殊域的內(nèi)容 DNET:最終目標(biāo)網(wǎng)絡(luò)號(hào),2個(gè)字節(jié)。 DLEN:最終目標(biāo)的MAC層地址的長(zhǎng)度,1個(gè)字節(jié),0表示對(duì)目標(biāo)網(wǎng)絡(luò)的廣播。 DADR
57、:最終目標(biāo)的MAC層地址。 SNET:初始源網(wǎng)絡(luò)號(hào),2個(gè)字節(jié)。 SLEN:初始源的MAC層地址的長(zhǎng)度,1個(gè)字節(jié)。 SADR:初始源的MAC層地址。 Hop Count:遞減計(jì)數(shù)器值,用來(lái)防止報(bào)文不被循環(huán)路由。1個(gè)字節(jié),初始化為XFF。當(dāng)報(bào)文通過(guò)每個(gè)路由器時(shí),其值被至少減一。如果路由器發(fā)現(xiàn)該值已為0,則丟棄此報(bào)文。 4網(wǎng)絡(luò)層報(bào)文類型 如果控制域中的比特7為1,這表示此報(bào)文是一個(gè)網(wǎng)絡(luò)層報(bào)文,其報(bào)文類型域存在。這是個(gè)1字節(jié)的域,其內(nèi)容表示報(bào)文攜帶的各種網(wǎng)絡(luò)層的控制信息。 5生產(chǎn)商專有網(wǎng)絡(luò)層報(bào)文 如果控制域的比特
58、7為1和報(bào)文類型域的值為X80至XFF時(shí),Vendor ID域存在,生產(chǎn)商可以有2個(gè)字節(jié)來(lái)編碼自己的專有網(wǎng)絡(luò)層報(bào)文類型。 多播報(bào)文和廣播報(bào)文 BACnet使用多播地址和廣播地址來(lái)支持多個(gè)目標(biāo)的報(bào)文傳輸。多播是指一個(gè)報(bào)文被傳送給一組目標(biāo)設(shè)備,而廣播是指一個(gè)報(bào)文被傳送給某個(gè)局域網(wǎng)中的所有設(shè)備、一個(gè)遠(yuǎn)程網(wǎng)絡(luò)中的所有設(shè)備、或者所有BACnet網(wǎng)絡(luò)中的所有設(shè)備。BACnet網(wǎng)絡(luò)層處理兩種報(bào)文,一種是包含有APDU的數(shù)據(jù)報(bào)文,另一種是關(guān)于網(wǎng)絡(luò)層本身控制信息的網(wǎng)絡(luò)層協(xié)議報(bào)文。對(duì)于數(shù)據(jù)報(bào)文,只有BACnet非證實(shí)請(qǐng)求協(xié)議數(shù)據(jù)單元(BACnet-Unconfirmed-
59、Request-PDU)的報(bào)文可以被多播或廣播。而網(wǎng)絡(luò)層協(xié)議報(bào)文都可以被多播或廣播,使用多播地址或者廣播地址進(jìn)行。 網(wǎng)絡(luò)層協(xié)議報(bào)文 在BACnet中,有十種網(wǎng)絡(luò)層協(xié)議報(bào)文,它們的作用是進(jìn)行路由器自動(dòng)配置,路由表的維護(hù),和網(wǎng)絡(luò)層擁塞控制。下面介紹這十種報(bào)文。 1 Who-Is-Router-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X00,后面有2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)。作用是:節(jié)點(diǎn)用來(lái)確定通達(dá)某目標(biāo)網(wǎng)絡(luò)的下一個(gè)路由器;幫助路由器更新路由表。當(dāng)省略2字節(jié)的網(wǎng)絡(luò)號(hào)時(shí),接收此報(bào)文的路由器要返回其所有可通達(dá)的目標(biāo)網(wǎng)絡(luò)的列表。 2&
60、#160;I-Am-Router-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X01,后面有2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)。作用是列出通過(guò)發(fā)送此報(bào)文的路由器可以到達(dá)的網(wǎng)絡(luò)號(hào)。 3 I-Could-Be-Router-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X02,后面有2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)和1個(gè)字節(jié)的性能指標(biāo)。作用是響應(yīng)包含有特定網(wǎng)絡(luò)號(hào)的Who-Is-Router-To-Network報(bào)文,由能夠建立到達(dá)特定目標(biāo)網(wǎng)絡(luò)的點(diǎn)到點(diǎn)連接的半路由器使用,其網(wǎng)絡(luò)號(hào)就是所響應(yīng)的報(bào)文中包含的特定網(wǎng)絡(luò)的網(wǎng)絡(luò)號(hào)。性能指標(biāo)表明這種連接的質(zhì)量。 4 Rejec
61、t-Message-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X03,后面有1個(gè)字節(jié)的原因說(shuō)明和2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)。作用是一個(gè)拒絕報(bào)文,直接發(fā)給生成被拒絕的報(bào)文的節(jié)點(diǎn),網(wǎng)絡(luò)號(hào)就是被拒絕報(bào)文中的網(wǎng)絡(luò)號(hào)。在拒絕原因字節(jié)中是一個(gè)無(wú)符號(hào)的整數(shù),其值所表示的意義如下: (0):其它差錯(cuò)。 (1):本路由器不能直接連接到所指示的目標(biāo)網(wǎng)絡(luò)以及不能發(fā)現(xiàn)任何一個(gè)能夠連接到所指示的目標(biāo)網(wǎng)絡(luò)。 (2):本路由器忙,目前不能接收關(guān)于所指示目標(biāo)網(wǎng)絡(luò)的報(bào)文。 (3):這是一個(gè)不可識(shí)別的網(wǎng)絡(luò)層報(bào)文類型。 (4):報(bào)文太長(zhǎng),不能路由到所指示的目標(biāo)網(wǎng)絡(luò)。
62、0;5 Router-Busy-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X04,后面是可選擇的2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)。作用是被路由器用來(lái)通知停止接收通過(guò)本路由器向某特定目標(biāo)網(wǎng)絡(luò)或者所有網(wǎng)絡(luò)發(fā)送的報(bào)文。此報(bào)文通常用廣播MAC地址發(fā)向相應(yīng)的網(wǎng)絡(luò)。如果沒(méi)有可選擇的2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào),則表示到所有網(wǎng)絡(luò)的報(bào)文都不接收。 6 Router-Available-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X05,后面是可選擇的2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)。作用是被路由器用來(lái)通知開(kāi)始或者重新開(kāi)始接收通過(guò)本路由器向某特定目標(biāo)網(wǎng)絡(luò)或者所有網(wǎng)絡(luò)發(fā)送的報(bào)文。此報(bào)文通常用廣
63、播MAC地址發(fā)向相應(yīng)的網(wǎng)絡(luò)。如果沒(méi)有可選擇的2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào),則表示到所有網(wǎng)絡(luò)的報(bào)文都可接收。 7 Initialize-Router-Table報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X06。作用是初始化一個(gè)路由器的路由表或者查詢當(dāng)前路由表的內(nèi)容。此報(bào)文有一個(gè)數(shù)據(jù)段,包含有初始化路由表的信息。 8 Initialize-Router-Table-Ack報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X07。作用是對(duì)初始化路由表報(bào)文的應(yīng)答,表示路由器的路由表已經(jīng)改變,或者已被查詢。此報(bào)文的數(shù)據(jù)段具有與它應(yīng)答的初始化路由表報(bào)文相同的格式。 9
64、Establish-Connection-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X08, 后面有2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)和1個(gè)字節(jié)的“中止時(shí)間值”。作用是命令一個(gè)半路由器創(chuàng)建一個(gè)通達(dá)指定網(wǎng)絡(luò)的點(diǎn)到點(diǎn)連接。2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)指出要半路由器連接的目標(biāo)網(wǎng)絡(luò)。1個(gè)字節(jié)的“中止時(shí)間值”規(guī)定了在沒(méi)有NPDU到達(dá)的情況下,連接保留的時(shí)間。當(dāng)此值為0時(shí),表示連接永久保留。 10. Disconnect-Connection-To-Network報(bào)文 格式為:網(wǎng)絡(luò)報(bào)文類型域是X09, 后面有2個(gè)字節(jié)的網(wǎng)絡(luò)號(hào)。作用是命令一個(gè)路由器釋放所建立的點(diǎn)到點(diǎn)連接。 3.1.5網(wǎng)絡(luò)層協(xié)議運(yùn)行規(guī)程 本節(jié)介紹BACnet路由器和節(jié)點(diǎn)進(jìn)行本地和遠(yuǎn)程數(shù)據(jù)傳輸所遵循的網(wǎng)絡(luò)層協(xié)議運(yùn)行規(guī)程。所謂“本地”是指源設(shè)備和目標(biāo)設(shè)備都在同一個(gè)BACnet網(wǎng)絡(luò)中,而所謂“遠(yuǎn)程”是指源設(shè)備和目標(biāo)設(shè)備分處不同的BACnet網(wǎng)絡(luò)之中。 1 本地?cái)?shù)據(jù)發(fā)送的網(wǎng)絡(luò)層協(xié)議規(guī)程 當(dāng)網(wǎng)絡(luò)層實(shí)體收到來(lái)自應(yīng)用層的一
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 45073-2024國(guó)家公園標(biāo)識(shí)
- GB/T 44940-2024鞋類和鞋類部件抗真菌性能定性評(píng)估試驗(yàn)方法(生長(zhǎng)測(cè)試)
- 2025版環(huán)保物業(yè)合同小區(qū)共建項(xiàng)目3篇
- 體育競(jìng)技:管理創(chuàng)獎(jiǎng)勵(lì)運(yùn)動(dòng)精神
- 環(huán)保設(shè)備證照管理辦法
- 眼鏡加工制造手冊(cè)
- 體育產(chǎn)業(yè)稅收優(yōu)惠指南
- 勞務(wù)派遣工作環(huán)境優(yōu)化
- 娛樂(lè)行業(yè)證照規(guī)定
- 高端教育社區(qū)按揭合同模板
- 腎病科腎病綜合征診療規(guī)范2023版
- 高考作文模擬寫作訓(xùn)練:一個(gè)熟悉的勞動(dòng)者
- 電商稅收合規(guī)問(wèn)題
- 鐵路行車規(guī)章
- 污水處理廠有毒有害氣體檢測(cè)記錄表
- 馬克思主義與社會(huì)科學(xué)方法論課后思考題答案全
- 硅谷銀行破產(chǎn)影響分析報(bào)告
- AI12人工智能-類腦智能
- 幼兒園課程標(biāo)準(zhǔn)3篇
- 針灸推拿習(xí)題庫(kù)+參考答案
- 臥式容器液位體積計(jì)算Excel表
評(píng)論
0/150
提交評(píng)論