BACnet 網路實體層/資料連結層常用的有 Ethernet、MS/TP、BACnet/IP 等類型,在單純 BACnet/IP 等高速網路應用場合或單一廠家建構的網路系統問題較少,但如果搭配頻寬較低的 MS/TP 加上多家不同廠商、不同期工程共同使用同一個 BACnet 網路,則可能因為網路設定不佳或資訊擁塞等因素,造成網路通訊不良或斷線,常見的原因分析如下:

1.廣播風暴(Broadcast Storm): BACnet Router 網路不可短循環,否則會造成廣播風暴例如網路上同時有兩個 BACnet/IP 與 MS/TP 的 Router,又將其 MS/TP 網路線相連結,如此一來會使 BACnet 廣播在兩個 Router 間不斷傳遞,造成廣播風暴。判斷此狀況可以從 BACnet/IP 網路端用 Wireshark 進行監看,如果同一時間產生大量相同的廣播,即可斷定此一狀況。

2. Network Number 衝突:BACnet Router 的每個 Network 都必須設定網路編號(Network Number),連接相同網路的 Router 都應該使用相同的編號,而該編號不可以與其他網路編號重複。在使用大量具備 Router 功能控制器的場合,如果部分 Router 功能開啟卻沒有正確的設定網路編號,使網路編號重複,此時將會使網路編號判斷錯誤,而將封包傳送到閒置網路,造成沒有回應。診斷此一症狀,只要使用 VTS 發送 Network 層的 Who-Is-Router-To-Network 封包,並檢視收到的 I-Am-Router-To-Network 封包是否有 Network Number 衝突即可。

3. MAC Address 衝突:BACnet 的封包是透過 Network Number 與 MAC Address 對應來查詢指定 Device Instance 的封包發送位置,如果 MAC Address 衝突會造成該封包無法順利傳送。除此外,如果是 BACnet Router 的 MAC Address 重複,可能就會造成該網路癱瘓。例如具備 MS/TP 的 Router 如果該 MS/TP 網路中有其他 MAC Address 與 Router MS/TP 端的 MAC Address 重複,會使 Router 無法順利獲得 Token 而無法順利傳送封包。

MAC Address 在不同網路系統中有不同的長度,例如 MS/TP 網路是 1 Byte 的地址;BACnet/IP 則是 6 bytes 的 IP + Port 編號,Ethernet 網路則為 6 bytes 的 網卡編號,由於 MAC 是各網路正常傳遞的基礎,因此較不易用簡易的方式判斷,必須依照不同網路特性分析排除。  

4. Device Instance 衝突:這是損害較小的異常,僅會造成衝突的設備顯示或控制異常。診斷此一症狀,只要使用 VTS 發送 Who-IS 封包,查看是否有不同來源(Network & MAC)但相同 Device Instance 的 I-Am 封包即可。

5.過於頻繁的封包使網路癱瘓:此狀況常發生在 MS/TP 網路,可能是位跨系統整合時,OPC Server 或其他整合軟體沒有限制的對 BACnet 網路發送封包讀取資訊造成。由於 MS/TP 網路頻寬較低,過高頻率的讀取會造成 Router 的緩衝區被灌爆,造成封包無法順利的傳遞至 MS/TP 網路中。判斷此狀況可以用 MS/TP 網路的監聽程式(例如 mstpcap 搭配 Wireshark)查看。當 Router 在獲取 Token 後連續 USE_TOKEN(MS/TP Frame Type 5或 Type 6)的數量是否接近 Router 的 Device Object 的Max_Info_Frames 屬性值,如果每次獲得 Token 後都發生此現象,則幾乎可以斷定網路擁塞的問題發生。閱讀與分析如果不是如前面所提的廣播封包(都是 Frame Type 6 的封包),則讀取封包的 Source Network 與 Source Address 以進一步研判產生此封包的來源。

6. MS/TP 網路通訊品質不佳:MS/TP 網路可能因為速率設定、MAC 設定、布線方式、施工品質、網路節點數、終端電阻加裝不當等因素造成等通訊品質不良。此狀況會使 MS/TP 的 權杖交替(Token Passing)作業不順暢而無法有效通訊,此時可以用 mstpcap 搭配 Wireshark 查看 MS/TP 狀況,如果常常發生持續發送 POLL_FOR_MASTER (MS/TP Frame Type 1)情形,則幾乎可以斷定是通訊品質不良,因為良好的 MS/TP 網路應該是持續進行 PASS_TOKEN 與 USE_TOKEN(MS/TP Frame Type 2),偶而才間續發送 POLL_FOR_MASTER 才正確。只是必須注意的是當 網路加上 RS-485 Converter 執行 mstpcap 時,可能會因為 Converter 的電路設計不同,造成既有 MS/TP 網路狀態改變。

元米科技 以 BACnet 推廣為主要營業目標,提供產品開發、技術指導、認證協助等多項 BACnet 技術服務,可大幅降低進入BACnet 領域的門檻。