陶椿霞TAO Chun-xia
(上海市建筑科學研究院有限公司,上海 200032)
隨著計算機和各種先進技術的迅猛發展,數字化技術已廣泛應用于建筑工程設計和施工等各領域,利用數字化技術賦能住宅工程質量檢測技術是住宅工程質量監管的重要趨勢。
目前住宅工程質量檢測與監管類信息系統標準化體系尚未健全,多類型檢測數據兼容性和互通性差,檢測數據的共享和利用不足。隨著現場檢測設備種類不斷增加和數據參數的日趨復雜,這對數據的采集傳輸提出了更高要求。因此亟需研究用于住宅工程質量檢測數據采集傳輸的通用共享協議,實現數據的有效管理與利用。依據目前各類常見的住宅檢測設備的信息流與數據流特征,研究數據采集傳輸的共享協議,實現各類檢測參數的數據接入,便于住宅工程質量檢測平臺的高效開發和快速集成,也有利于與外部應用系統的快速聯通。
近年來,住宅建筑工程的質量倍受重視。住宅工程質量檢測主要包含地基基礎工程、主體結構工程、建筑幕墻工程、鋼結構工程等檢測。本文針對住宅工程中經常使用到的檢測設備進行了調研。
主要用到的住宅工程檢測設備和數據采集儀器包含激光測距儀、混凝土回彈儀、鋼筋探測儀、超聲測厚儀、全站儀、微功耗數據采集儀、靜載儀器、超聲波自動循測儀、成槽儀器、高低應變儀一體基樁動測儀等。不同設備的數據傳輸方式也各有不同,如采用無線近距離Bluetooth 技術、ZigBee 自動組網技術、3G/4G 無線通訊、USB、RS232等等。
目前在工程質量檢測的技術中,絕大部分還停留在使用人工手動測量或者只能將檢測的數據通過表格等形式間接導入到相應系統的方式。對于有些檢測設備的狀態監聽、數據采集、數據管理等功能都依賴于設備自身提供的能力,檢測時必須在設備的本地操作,無法做到數字化采集和數據傳輸。為了實現檢測設備數據的共享和利用,亟需針對檢測設備設計通用的數據傳輸協議。
當前常用的傳輸協議有RESTful/HTTP、MQTT、TCP/IP等,各種傳輸協議情況如下。
2.1.1 RESTful/HTTP 協議
RESTful/HTTP 協議是指利用REST 技術再結合HTTP 協議的特性和能力,通過底層直接建立在HTTP 協議之上,可以充分發揮Web 的潛力。它是一種基于請求/響應模型的協議,客戶端發送請求并等待服務器響應。RESTful 是一種基于資源的軟件架構風格。RESTful 架構遵循統一接口原則,統一接口必須符合一組受限的預定義操作,無論什么資源,都是通過使用相同的接口進行資源的訪問。
按RESTful 架構風格規定的數據基本操作CRUD(即數據的增、查、改、刪),分別對應HTTP 方法,統一了數據操作的接口,僅通過HTTP 方法,就可完成對數據的所有操作工作。RESTful 的數據接口更加簡便高效、統一安全。
2.1.1.1 請求的方法
在請求時帶上請求的方法,主要為所請求的事件進行一個分類縮寫。用于精確地區分具體功能,可簡化接口架構復雜性。通過HTTP 進行通信交互,所有接口都是標準的 HTTP 協議請求方式:GET,POST,PUT,DELETE,PATCH 等等。
2.1.1.2 URI
URI 表示統一資源定位符,RESTful 架構風格要求用URI 指向資源,每個URI 對應一個特定的資源,一個資源可以有一個或多個URI 與之對應。在Web 開發中,URI 也就是URL 地址。因此要獲取此資源,訪問其URI 資源的地址即可實現。
2.1.1.3 HTTP 規范響應狀態碼
HTTP 的特點是簡單靈活、易于擴展、擁有成熟的生態規范,可以實現客戶端與服務器之間交互的松耦合,降低客戶端和服務器之間的交互延遲。HTTP 的狀態碼是服務端對客戶端請求的返回結果,用于標記服務端對于該請求的處理情況。
2.1.2 MQTT 協議
隨著越來越多的物聯網設備采用MQTT 作為支持協議,在圖1 物聯網數據采集系統構成中,MQTT 協議在OSI 模型體系中屬于應用層協議。它是一種基于發布/訂閱模式的“輕量級”的通信協議,該協議構建于TCP/IP 協議之上。因此只要是支持TCP/IP 協議的地方,都可以使用MQTT,可以有效降低檢測設備接入難度和使用成本。

圖1 物聯網數據采集系統構成
2.1.2.1 MQTT 特點
①使用發布/訂閱消息模式,提供一對多的消息發布,客戶端彼此之間獨立,解除了應用程序耦合性,增強整個系統的可靠性。就算一個客戶端出現故障時,整個系統可以繼續正常工作。
②二進制形式編碼,低功耗,協議開銷小,消息的分發不受低帶寬、網絡延遲高、通信不穩定等影響,屬于物聯網的一個標準傳輸協議,可降低網絡流量。
③使用TCP/IP 提供網絡連接,客戶端(Clients)與代理(Broker)之間可保持TCP 長連接。采用心跳機制,通過間斷性的發送報文,來保持客戶端和服務端的心跳長連接,以減少電量的消耗,提升系統資源利用率。
④報文結構緊湊、載荷格式靈活,載荷內容支持多種數據傳輸,如文本、加密數據、圖像及二進制數據,可以拓展更豐富的應用業務。
⑤三種消息發布服務質量QoS:“最多一次”“最少一次”“只有一次”。
“QoS0 最多一次”:指消息只傳遞一次,這種情況可能會發生信息丟失,這一級別的QoS 可用于如環境傳感器數據,丟失一次記錄無所謂,因為等待不久后還會有第二次發送。
“QoS1 最少一次”:即保證消息準確到達,但是可能會造成信息重復發送。
“QoS2 只有一次”:一般使用在對數據完整性和時效性有高要求的情況下,與此同時多次往返確認會造成資源過度消耗以及影響并發。一般適用于一些要求較嚴格的計費系統中。
⑥具有安全性,支持基于TLS/SSL 的加密和認證機制,保護通信的安全性。
2.1.2.2 MQTT 協議格式
MQTT 協議格式主要由固定報文頭、可變報文頭和有效載荷三部分組成。不同的業務需求下,預定義的控制報文也不同,主要區別在于是否包含可變報文頭或有效載荷。整體MQTT 的消息格式如圖2 所示。

圖2 整體MQTT 的消息格式
“固定報文頭”:它由兩部分組成,第一部分包含了報文的控制類型和報文的標志;第二部分表示除固定報文頭長度外剩余的長度。
第一部分高4 位為MQTT 控制報文的類型,具有實際意義的控制報文類型主要分為四大類:連接類、保活類、話題訂閱類、消息發布類。根據取值例如:0001 可知控制報文對應CONNECT 連接類型。
“可變報文頭”:用來記錄一些協議內容,例如協議名稱、協議級別、連接標志和心跳間隔四個字段組成。
“有效載荷”:是消息主體,是整個協議格式中最為重要的部分。物聯網設備所要傳遞的數據都由這部分保存,表示訂閱者具體要使用的消息內容。有效載荷消息體中包含 CONNECT、SUBSCRIBE、SUBACK、UNSUBSCRI BE、PUBLISH 幾種常用報文類型的消息。
TCP/IP 協議:TCP/IP 協議是互聯網使用最廣泛的協議之一,它分為兩個部分:傳輸控制協議和因特網協議。TCP/IP 是一個協議族,包括多個網絡協議,比如IP、ICMP、TCP、HTTP、FTP、POP3 等。它是因特網的核心協議,用于在互聯網上進行數據傳輸和網絡通信。TCP 負責數據的可靠傳輸,IP 則負責數據包的路由。
TCP/IP 協議按照層次由上到下:最上層是應用層,有我們熟悉的協議HTTP、FTP 等等。第二層是傳輸層,著名的TCP 和UDP 協議就在這個層次。第三層則是網絡層,IP協議就屬于這一層,它是一種無連接的協議,專門負責網絡層的路由選擇和數據包的傳輸。它使用IP 地址定位網絡上的設備,并將數據包從源地址傳輸到目的地址。IP 協議提供了一個層次化、可擴展的網絡架構,使得互聯網上的大部分設備都可以進行通信。第四層是數據鏈路層,這個層次為等待傳送的數據加入一個以太網協議頭,并進行CRC 編碼,為最后的數據傳輸做準備。
常用的網絡數據傳輸格式包含:JSON、XML、ProtoBuf等。對比三種最常用的數據傳輸格式如下:
①XML:它是可擴展標記語言與Oracle、Access 和SQL Server 等數據庫不同,數據庫提供了更強有力的數據存儲和分析能力。XML 簡單易于在任何應用程序中讀寫數據,這使得XML 很快成為數據交換的公共語言。但是XML 文件龐大,傳輸占帶寬、服務器端和客戶端都需要花費大量代碼來解析XML,導致代碼變得異常復雜且不易維護,客戶端不同瀏覽器之間解析XML 的方式不一致,需要重復編寫很多代碼。XML 的有效載荷實在太低,封裝和解析效率太低,所以只適用于非常少量,對性能沒要求的網絡流量。
②JSON:它是一種輕量級的數據交換格式,易于機器解析和生成。將采集階段得到的數據根據具體的通訊協議規約,進行有效數據的過濾,標準數據的格式化,它采用完全獨立于語言的文本格式。它可以將JavaScript 對象中表示的一組數據轉換為字符串,在網絡或程序之間輕松地傳遞這個字符串,并可以在需要時將它還原為各編程語言所支持的數據格式。
③ProtoBuf:它是一種數據交換格式,又稱PB 編碼,由Google 開源,類似于JSON、XML,但其內部是純二進制格式,比JSON,XML 等格式要更精煉,主要用于數據的序列化和反序列化,目前官方提供了JAVA、Python、C++等多種語言的實現。
綜上幾種傳輸格式分析,XML 適用于傳輸文檔,而JSON 更適用于傳輸信息對象,因此本文研究采用JSON的傳輸格式。
針對住宅工程質量檢測設備數據傳輸協議,提供統一的JSON 格式。本文選擇兩種傳輸協議Restful/HTTP 協議和MQTT 協議,以支撐絕大多數設備數據傳輸。
對于本次研究的數據采集協議中,基于Restful/HTTP協議使用的是POST 請求方式,請求和響應的消息內容采用JSON 格式。
①數據接口描述如下:
請求類型:POST

③HTTP 狀態碼:上傳成功服務端返回2xx 的HTTP的狀態碼;上傳失敗則返回4xx/5xx HTTP 的狀態碼。
對于本次研究的數據采集協議中,基于MQTT 協議滿足從服務端主動向客戶端發起推送方式。其訂閱的主題格式:deviceData/{projectId},projectId 代表具體項目,使用“/”作為分隔符,表示只訂閱“deviceData”該層級下的所有主題以及所屬projectId 所屬項目的主題內容。數據采用JSON 格式,每條MQTT 消息上傳一個監測設備的所有參數數據。
本文研究了常用數據傳輸協議和數據傳輸格式,設計了住宅工程質量檢測平臺的數據采集通用協議,最終采用RESTful/HTTP 協議和MQTT 協議。針對種類繁多的檢測設備類型,盡可能做到一站式全方位數據采集。將現代化通信技術與住宅工程質量檢測數據采集系統相結合,實現數據的無線采集與傳輸,大大減少人力、物力成本,將有力推動住宅工程質量檢測數字化進程。