浙江建設(shè)職業(yè)技術(shù)學(xué)院 王振華
寧波技師學(xué)院 劉福祥 沈 甦
當(dāng)前,隨著物聯(lián)網(wǎng)技術(shù)的發(fā)展,大量的現(xiàn)場(chǎng)智能設(shè)備(如各類(lèi)現(xiàn)場(chǎng)控制器、傳感器、變送器等)需要接入云平臺(tái)來(lái)實(shí)現(xiàn)數(shù)據(jù)采集與控制。這些現(xiàn)場(chǎng)智能設(shè)備大多都支持用串口采用MODBUS協(xié)議進(jìn)行通信,而當(dāng)前的主流云平臺(tái)(如阿里云、百度云等)對(duì)現(xiàn)場(chǎng)數(shù)據(jù)采集大多都支持MQTT協(xié)議進(jìn)行數(shù)據(jù)通信,這就需要在設(shè)備現(xiàn)場(chǎng)增設(shè)一個(gè)MODBUS轉(zhuǎn)MQTT協(xié)議的云網(wǎng)關(guān)來(lái)處理相關(guān)數(shù)據(jù)的協(xié)議轉(zhuǎn)換事宜,并實(shí)現(xiàn)數(shù)據(jù)向云平臺(tái)的轉(zhuǎn)發(fā)上傳。本文中基于樹(shù)莓派平臺(tái)設(shè)計(jì)實(shí)現(xiàn)了一種MODBUS轉(zhuǎn)MQTT協(xié)議的現(xiàn)場(chǎng)云網(wǎng)關(guān),該設(shè)備能通過(guò)串口與各類(lèi)現(xiàn)場(chǎng)設(shè)備通訊,應(yīng)用MODBUS協(xié)議采集現(xiàn)場(chǎng)的各種傳感器實(shí)時(shí)數(shù)據(jù),并實(shí)現(xiàn)以MQTT協(xié)議上傳到云平臺(tái),下文中以基于云網(wǎng)關(guān)的溫度采集方案為例,闡述該型網(wǎng)關(guān)的設(shè)計(jì)與實(shí)現(xiàn)方法。
為了實(shí)現(xiàn)現(xiàn)場(chǎng)溫度數(shù)據(jù)的采集與協(xié)議轉(zhuǎn)換,采集系統(tǒng)中包括以下部件:溫度傳感器、溫度變送器、云網(wǎng)關(guān)、云平臺(tái)。其中,溫度傳感器直接與溫度變送器連接,實(shí)時(shí)檢測(cè)現(xiàn)場(chǎng)的溫度數(shù)據(jù),溫度變送器與云網(wǎng)關(guān)之間采用RS-485串行通訊(根據(jù)現(xiàn)場(chǎng)采集需要云網(wǎng)關(guān)可同時(shí)連接多臺(tái)溫度變送器),云網(wǎng)關(guān)與云平臺(tái)之間采用以太網(wǎng)通訊,以此來(lái)實(shí)現(xiàn)各個(gè)部件之間的連接與通訊。
現(xiàn)場(chǎng)涉及MODBUS、MQTT兩種通訊協(xié)議的轉(zhuǎn)換,由云網(wǎng)關(guān)實(shí)時(shí)完成以上兩種數(shù)據(jù)格式的轉(zhuǎn)換,并實(shí)時(shí)上傳云平臺(tái)。當(dāng)前,在物聯(lián)網(wǎng)與工業(yè)控制系統(tǒng)中,設(shè)備之間串行通訊大部份都是用到Modbus協(xié)議。Modbus協(xié)議是一項(xiàng)應(yīng)用層報(bào)文傳輸協(xié)議,包括ASCII、RTU、TCP三種報(bào)文類(lèi)型,modbus rtu模式最為常用。MQTT(Message Queuing Telemetry Transport,消息隊(duì)列遙測(cè)傳輸協(xié)議),是一種基于發(fā)布/訂閱(publish/subscribe)模式的"輕量級(jí)"通訊協(xié)議,該協(xié)議構(gòu)建于TCP/IP協(xié)議上,MQTT最大優(yōu)點(diǎn)在于,可以以極少的代碼和有限的帶寬,為連接遠(yuǎn)程設(shè)備提供實(shí)時(shí)可靠的消息服務(wù)。作為一種低開(kāi)銷(xiāo)、低帶寬占用的即時(shí)通訊協(xié)議,使其在物聯(lián)網(wǎng)、小型設(shè)備、移動(dòng)應(yīng)用等方面有較廣泛的應(yīng)用。
圖1 溫度采集系統(tǒng)總體框圖
本文中云網(wǎng)關(guān)采用樹(shù)莓派平臺(tái)來(lái)作為硬件平臺(tái)。樹(shù)莓派(Raspberry Pi)是尺寸僅有信用卡大小的一個(gè)小型電腦,樹(shù)莓派能替代日常桌面計(jì)算機(jī)的多種用途,包括文字處理、電子表格、媒體中心甚至是游戲。該機(jī)型支持有線網(wǎng),3代以后的版本均集成了無(wú)線網(wǎng)卡和藍(lán)牙,同時(shí)樹(shù)莓派以其低能耗、移動(dòng)便攜性、GPIO等特性,很多在普通電腦上難以實(shí)現(xiàn)的應(yīng)用,用樹(shù)莓派卻是很適合的。因其自帶串口與以太網(wǎng)口,因而與各種現(xiàn)場(chǎng)設(shè)備及云平臺(tái)的硬件對(duì)接非常簡(jiǎn)便。
圖2 云網(wǎng)關(guān)硬件平臺(tái)
云網(wǎng)關(guān)的軟件系統(tǒng)在linux系統(tǒng)下采用python語(yǔ)言編程實(shí)現(xiàn),主要在軟件系統(tǒng)中不斷循環(huán)執(zhí)行以下兩項(xiàng)子功能:(1)通過(guò)串口基于MODBUS協(xié)議從溫度變送器讀取溫度實(shí)時(shí)數(shù)據(jù);(2)將溫度數(shù)據(jù)以MQTT協(xié)議打包上傳云平臺(tái)。
本文中設(shè)計(jì)的云網(wǎng)關(guān)相比于現(xiàn)有物聯(lián)網(wǎng)網(wǎng)關(guān)具備以下改良:依托樹(shù)莓派平臺(tái)的優(yōu)良硬件性能與高可靠性,能較好的保證云網(wǎng)關(guān)的硬件穩(wěn)定與可靠,利用485總線通訊,能實(shí)現(xiàn)同時(shí)采集多路現(xiàn)場(chǎng)設(shè)備的實(shí)時(shí)數(shù)據(jù),同時(shí)基于Linux環(huán)境下的python語(yǔ)言開(kāi)發(fā)具有很高的開(kāi)發(fā)效率,軟件系統(tǒng)代碼精煉,代碼復(fù)用與遷移開(kāi)發(fā)都比較容易,非常便于擴(kuò)展應(yīng)用到其他類(lèi)似物聯(lián)網(wǎng)數(shù)據(jù)采集項(xiàng)目開(kāi)發(fā)中。