浙江建設職業技術學院 王振華
寧波技師學院 劉福祥 沈 甦
當前,隨著物聯網技術的發展,大量的現場智能設備(如各類現場控制器、傳感器、變送器等)需要接入云平臺來實現數據采集與控制。這些現場智能設備大多都支持用串口采用MODBUS協議進行通信,而當前的主流云平臺(如阿里云、百度云等)對現場數據采集大多都支持MQTT協議進行數據通信,這就需要在設備現場增設一個MODBUS轉MQTT協議的云網關來處理相關數據的協議轉換事宜,并實現數據向云平臺的轉發上傳。本文中基于樹莓派平臺設計實現了一種MODBUS轉MQTT協議的現場云網關,該設備能通過串口與各類現場設備通訊,應用MODBUS協議采集現場的各種傳感器實時數據,并實現以MQTT協議上傳到云平臺,下文中以基于云網關的溫度采集方案為例,闡述該型網關的設計與實現方法。
為了實現現場溫度數據的采集與協議轉換,采集系統中包括以下部件:溫度傳感器、溫度變送器、云網關、云平臺。其中,溫度傳感器直接與溫度變送器連接,實時檢測現場的溫度數據,溫度變送器與云網關之間采用RS-485串行通訊(根據現場采集需要云網關可同時連接多臺溫度變送器),云網關與云平臺之間采用以太網通訊,以此來實現各個部件之間的連接與通訊。
現場涉及MODBUS、MQTT兩種通訊協議的轉換,由云網關實時完成以上兩種數據格式的轉換,并實時上傳云平臺。當前,在物聯網與工業控制系統中,設備之間串行通訊大部份都是用到Modbus協議。Modbus協議是一項應用層報文傳輸協議,包括ASCII、RTU、TCP三種報文類型,modbus rtu模式最為常用。MQTT(Message Queuing Telemetry Transport,消息隊列遙測傳輸協議),是一種基于發布/訂閱(publish/subscribe)模式的"輕量級"通訊協議,該協議構建于TCP/IP協議上,MQTT最大優點在于,可以以極少的代碼和有限的帶寬,為連接遠程設備提供實時可靠的消息服務。作為一種低開銷、低帶寬占用的即時通訊協議,使其在物聯網、小型設備、移動應用等方面有較廣泛的應用。

圖1 溫度采集系統總體框圖
本文中云網關采用樹莓派平臺來作為硬件平臺。樹莓派(Raspberry Pi)是尺寸僅有信用卡大小的一個小型電腦,樹莓派能替代日常桌面計算機的多種用途,包括文字處理、電子表格、媒體中心甚至是游戲。該機型支持有線網,3代以后的版本均集成了無線網卡和藍牙,同時樹莓派以其低能耗、移動便攜性、GPIO等特性,很多在普通電腦上難以實現的應用,用樹莓派卻是很適合的。因其自帶串口與以太網口,因而與各種現場設備及云平臺的硬件對接非常簡便。

圖2 云網關硬件平臺
云網關的軟件系統在linux系統下采用python語言編程實現,主要在軟件系統中不斷循環執行以下兩項子功能:(1)通過串口基于MODBUS協議從溫度變送器讀取溫度實時數據;(2)將溫度數據以MQTT協議打包上傳云平臺。



本文中設計的云網關相比于現有物聯網網關具備以下改良:依托樹莓派平臺的優良硬件性能與高可靠性,能較好的保證云網關的硬件穩定與可靠,利用485總線通訊,能實現同時采集多路現場設備的實時數據,同時基于Linux環境下的python語言開發具有很高的開發效率,軟件系統代碼精煉,代碼復用與遷移開發都比較容易,非常便于擴展應用到其他類似物聯網數據采集項目開發中。