周 旭
(山東華宇工學(xué)院電氣工程學(xué)院,山東 德州 253034)
作為污水處理產(chǎn)業(yè)鏈上重要的一環(huán),壓濾機(jī)在我國的發(fā)展一直備受矚目。到2019年,我國年污水處理能力將達(dá)到575億噸,年污泥產(chǎn)量約為4560萬噸。壓濾機(jī)工作時需要工作人員值守,不能及時記錄壓濾機(jī)的工作時間,不能實現(xiàn)人機(jī)交互。隨著社會發(fā)展,自動化程度的提高,客戶對壓濾機(jī)提出了新的要求,即提高壓濾機(jī)的自動化水平,以實現(xiàn)互聯(lián)互通、自動數(shù)據(jù)采集、遠(yuǎn)程調(diào)試、遠(yuǎn)程故障分析、人機(jī)交互、無人值守的功能。目前,國內(nèi)壓濾機(jī)還沒有基于NB-IOT的物聯(lián)系統(tǒng)。不能讓生產(chǎn)廠家遠(yuǎn)程讀取客戶設(shè)備運(yùn)行參數(shù)。這個問題亟須解決。
針對以上的問題,我們研制一種基于NB-IOT的壓濾機(jī)物聯(lián)客戶創(chuàng)新服務(wù)系統(tǒng)。在“萬物互聯(lián)”的大趨勢下,NB-IOT具備強(qiáng)連接、高覆蓋、低功耗、低成本等特性,能夠帶來更加豐富的應(yīng)用場景[1]。通過電腦網(wǎng)頁或手機(jī)APP監(jiān)視壓濾機(jī)參數(shù)。壓濾機(jī)數(shù)據(jù)物聯(lián)網(wǎng)化,可以提升壓濾機(jī)產(chǎn)品技術(shù)含量,增強(qiáng)產(chǎn)品競爭力。通過大數(shù)據(jù)分析,掌握壓濾機(jī)設(shè)備的開機(jī)率,使設(shè)備運(yùn)行時長,更快應(yīng)對市場變化,更新產(chǎn)品。
使用單片機(jī)作為控制核心,外接網(wǎng)絡(luò)通信芯片,使單片機(jī)通過串口采集的數(shù)據(jù)傳輸?shù)皆品?wù)器。單片機(jī)內(nèi)部編寫程序,實現(xiàn)MODBUS協(xié)議,從而實現(xiàn)單片機(jī)和PLC、智能儀表之間的通信[2]。云服務(wù)計劃采用百度云服務(wù)器,它支持MQTT協(xié)議,能夠?qū)崿F(xiàn)數(shù)據(jù)的實時傳輸。在PC端和手機(jī)端使用HTML5技術(shù)編寫網(wǎng)頁,展示采集到的數(shù)據(jù)[3][4]。在手機(jī)上編寫APP,實現(xiàn)手機(jī)對工業(yè)現(xiàn)場的遠(yuǎn)程監(jiān)控和控制功能。系統(tǒng)組成如圖1所示。
MODBUS通信實現(xiàn)。基于NB-IOT通信網(wǎng)絡(luò),數(shù)據(jù)直接發(fā)送到服務(wù)器,無需網(wǎng)關(guān)[5]。采用單片機(jī)作為主控芯片,無線傳輸使用網(wǎng)絡(luò)傳輸。在手機(jī)端編寫APP供數(shù)據(jù)展示和遠(yuǎn)程控制使用。程序通信流程圖,如圖2所示。

圖1 壓濾機(jī)物聯(lián)客戶服務(wù)系統(tǒng)示意圖

圖2 主機(jī)發(fā)送程序通信流程圖
我們選用帶有WIFI功能的單片機(jī)ESP8266,在單片機(jī)內(nèi)部編寫MODBUS通信協(xié)議,讀取PLC內(nèi)部地址的數(shù)據(jù)。MODBUS協(xié)議是應(yīng)用于電子控制器上的一種通用語言[6]。通過此協(xié)議,控制器相互之間、控制器經(jīng)由網(wǎng)絡(luò)(例如以太網(wǎng))和其他設(shè)備之間可以通信。本項目使用RTU模式,消息發(fā)送至少要以3.5個字符時間的停頓間隔開始。傳輸?shù)牡谝粋€域是設(shè)備地址。可以使用的傳輸字符是十六進(jìn)制的0~9,A~F。網(wǎng)絡(luò)設(shè)備不斷偵測網(wǎng)絡(luò)總線,包括停頓間隔時間內(nèi)。當(dāng)?shù)谝粋€域(地址域)接收到,每個設(shè)備都進(jìn)行解碼以判斷是否發(fā)往自己。在最后一個傳輸字符之后,一個至少3.5個字符時間的停頓標(biāo)定了消息的結(jié)束。一個新的消息可在此停頓后開始。消息幀的地址域包含兩個字符(ASCII)或8Bit(RTU)。主設(shè)備通過將要聯(lián)絡(luò)的從設(shè)備放入消息中的地址域來選通從設(shè)備。當(dāng)從設(shè)備發(fā)送回應(yīng)消息時,它把自己的地址放入回應(yīng)的地址域中,以便主設(shè)備知道是哪一個設(shè)備作出回應(yīng)。地址0是用作廣播地址,以使所有的從設(shè)備都能認(rèn)識。應(yīng)答包中,數(shù)據(jù)包括了數(shù)據(jù)字節(jié)長度+數(shù)據(jù)值,請求包中數(shù)據(jù)只包含數(shù)據(jù)值。通過以上方法,對MODBUS各個線圈進(jìn)行讀寫[7][8]。
NB-IOT網(wǎng)絡(luò)的使用。NB-IOT網(wǎng)絡(luò)的注冊和信息發(fā)送。采用上海移遠(yuǎn)芯片,學(xué)校附近已布置電信NB-IOT基站,故使用一款電信的模塊。首先需插上SIM卡,然后寫IMEI號,過程如下:先執(zhí)行AT+CFUN=0命令,然后再執(zhí)行AT+NTSETID=1,設(shè)置IMEI號;設(shè)置后執(zhí)行AT+CGSN=1查詢是否設(shè)置成功。IMEI號只能設(shè)置一次。接下來的步驟是附著網(wǎng)絡(luò)。接收UDP數(shù)據(jù),當(dāng)我們通過指令向服務(wù)器發(fā)送數(shù)據(jù)后,這個時候運(yùn)營商為模組和服務(wù)器開通了一個短暫通道,模組的地址就是我們接收數(shù)據(jù)時的地址。
物聯(lián)創(chuàng)新客戶服務(wù)系統(tǒng)軟件開發(fā)。IONIC是一個用來開發(fā)混合手機(jī)應(yīng)用的,開源的,免費(fèi)的代碼庫。該框架可以運(yùn)行于電腦端和手機(jī)端。在軟件內(nèi)我們使用MQQT協(xié)議來收發(fā)服務(wù)器消息。步驟如下:(1)連接服務(wù)端,客戶端到服務(wù)端的網(wǎng)絡(luò)連接建立后,客戶端發(fā)送給服務(wù)端的第一個報文必須是CONNECT報文。在一個網(wǎng)絡(luò)連接上,客戶端只能發(fā)送一次CONNECT報文。服務(wù)端必須將客戶端發(fā)送的第二個CONNECT報文當(dāng)作協(xié)議違規(guī)處理并斷開客戶端的連接。有效載荷包含一個或多個編碼的字段。包括客戶端的唯一標(biāo)識符,Will主題、Will消息、用戶名和密碼。除了客戶端標(biāo)識之外,其他的字段都是可選的,基于標(biāo)志位來決定可變報頭中是否需要包含這些字段。(2)發(fā)布消息,PUBLISH控制報文是指從客戶端向服務(wù)端或者服務(wù)端向客戶端傳輸一個應(yīng)用消息。(3)訂閱主題,客戶端向服務(wù)端發(fā)送SUBSCRIBE報文用于創(chuàng)建一個或多個訂閱。每個訂閱注冊客戶端關(guān)心一個或多個主題。為了將應(yīng)用消息轉(zhuǎn)發(fā)給與那些訂閱匹配的主題,服務(wù)端發(fā)送PUBLISH報文給客戶端。SUBSCRIBE報文也(為每個訂閱)指定了最大的QOS等級,服務(wù)端根據(jù)這個發(fā)送應(yīng)用消息給客戶端。
通過以上硬件系統(tǒng)調(diào)試和軟件的數(shù)據(jù)傳輸。在壓濾機(jī)上應(yīng)用基于NB-IOT的物聯(lián)客戶創(chuàng)新服務(wù)系統(tǒng),實現(xiàn)了設(shè)備的遠(yuǎn)程維護(hù)。采用最新的NBIOT網(wǎng)絡(luò),實現(xiàn)了壓濾機(jī)數(shù)據(jù)采集的穩(wěn)定可靠。采用基于NB-IOT的物聯(lián)客戶創(chuàng)新服務(wù)系統(tǒng),減少設(shè)備維修時間,可以提高設(shè)備利用率,增加企業(yè)贏利。