李響 秦猛 張恒 王英 陳培鋒



摘 要:針對多路數(shù)控機床運行過程中難以實現(xiàn)實時監(jiān)測和自動報警問題,提出一種基于STM32和云平臺的同步監(jiān)測方法,并對狀態(tài)監(jiān)測系統(tǒng)的硬件系統(tǒng)和軟件流程進行設(shè)計。利用NB-IoT網(wǎng)絡(luò)和MQTT即時通信協(xié)議連接云平臺,使用SIM800C通信模塊提供網(wǎng)絡(luò)連接,實現(xiàn)數(shù)控機床狀態(tài)監(jiān)測數(shù)據(jù)和云平臺的穩(wěn)定連接和監(jiān)測。該系統(tǒng)具有成本低、可二次開發(fā)、易維護等特點,可滿足多線路監(jiān)測、實時報警的工業(yè)物聯(lián)網(wǎng)需求。
關(guān)鍵詞:NB-IoT;STM32;數(shù)控機床;監(jiān)測系統(tǒng);實時報警;系統(tǒng)設(shè)計
中圖分類號:TP39;TN06-34文獻標(biāo)識碼:A文章編號:2095-1302(2020)04-00-04
0 引 言
物聯(lián)網(wǎng)的概念最早于1999年由美國麻省理工學(xué)院首次提出[1]。工業(yè)物聯(lián)網(wǎng)是通過工業(yè)資源的網(wǎng)絡(luò)互聯(lián)、數(shù)據(jù)互通和系統(tǒng)相互操作,實現(xiàn)制造過程的合理優(yōu)化和制造環(huán)境的快速適應(yīng),達到資源的高效利用,從而構(gòu)建服務(wù)驅(qū)動型的新工業(yè)生態(tài)體系[2]。
數(shù)控機床是一種典型的機電一體化產(chǎn)品,它較好地解決了精密、復(fù)雜、小批量的零件加工問題,作為現(xiàn)代工業(yè)基石的機床產(chǎn)業(yè),是衡量一個國家工業(yè)水平的重要參照[3-4]。數(shù)控機床狀態(tài)監(jiān)測系統(tǒng)能夠?qū)C床工作異常及時報警,可以有效避免機床故障的發(fā)生。目前,大部分監(jiān)測系統(tǒng)采用獨立組網(wǎng)的形式,造成了人力資源的大量浪費。本文基于NB-IoT和OneNET物聯(lián)網(wǎng)開放云平臺的物聯(lián)網(wǎng)技術(shù),設(shè)計并實現(xiàn)了一種新型數(shù)控機床遠程監(jiān)測系統(tǒng),能實時監(jiān)測多路數(shù)控機床各關(guān)鍵位置的狀態(tài)信息,預(yù)測并及時報警,大幅提高了監(jiān)測管理效率,降低了安全隱患。
1 系統(tǒng)總體設(shè)計
1.1 系統(tǒng)框架
監(jiān)測系統(tǒng)的框架如圖1所示,按照物聯(lián)網(wǎng)體系架構(gòu)分為物聯(lián)感知、網(wǎng)絡(luò)傳輸和IoT云平臺應(yīng)用層,系統(tǒng)由傳感器模塊、數(shù)據(jù)傳輸模塊、顯示模塊、電源模塊、監(jiān)測平臺、Web客戶端和移動APP等組成。
第一層是物聯(lián)感知層,屬于系統(tǒng)邏輯架構(gòu)的底層,用于部署基礎(chǔ)硬件設(shè)施,包括溫度傳感器、位移傳感器、低功耗器件、電源、信號處理電路等。
第二層是網(wǎng)絡(luò)傳輸層,負責(zé)數(shù)據(jù)流的傳輸控制。溫度、位移等傳感器被觸發(fā)后會按照需求產(chǎn)生一定量的數(shù)據(jù)報警流,數(shù)據(jù)流通過NB-IoT網(wǎng)絡(luò)傳輸?shù)交局筮B接至云平臺。
第三層是IoT云平臺應(yīng)用層,通過該平臺獲取物聯(lián)感知層的數(shù)據(jù)信息,并對數(shù)據(jù)進行實時監(jiān)測和存儲,當(dāng)超過報警閾值時,及時通知并報警。
1.2 系統(tǒng)概述
本監(jiān)測系統(tǒng)采用低功耗的STM32單片機作為控制單元,與多個激光位移傳感器和溫度傳感器組成監(jiān)測單元。單片機將相關(guān)傳感器信息通過NB-IoT網(wǎng)絡(luò),按照設(shè)定的傳輸協(xié)議(MQTT)定時上報到監(jiān)測平臺,Web客戶端和移動端APP向IoT云平臺請求獲取相關(guān)服務(wù)。當(dāng)探測器超過報警閾值時,通過SIM800C無線通信模塊以短信和電話方式通知用戶。
2 硬件選型
2.1 NB-IoT
窄帶物聯(lián)網(wǎng)(Narrow Band Internet of Things,NB-IoT)技術(shù)是基于全新空口設(shè)計的、運行在授權(quán)頻譜上的物聯(lián)網(wǎng)技術(shù),其帶寬為180 kHz,可靈活部署于帶寬超過180 kHz的GSM,UMTS和LTE的空閑頻帶中,從而降低部署成本[5]。NB-IoT具有大容量、高覆蓋、低功耗和低成本等優(yōu)點[6]。本監(jiān)測系統(tǒng)通過NB-IoT網(wǎng)絡(luò)將各傳感器獲得的數(shù)控機床狀態(tài)運行信息傳送到物聯(lián)網(wǎng)云平臺,能耗較低,滿足多路連接要求。
NB-IoT模塊選用移遠通信的BC35-G通信模塊,模塊采用5 V供電,每間隔3 s向外發(fā)送一次信號。NB-IoT模塊通過UART接口接收主控模塊發(fā)送的數(shù)據(jù),并將其封裝成MQTT消息發(fā)送至物聯(lián)網(wǎng)云平臺。主控單元通過串口與BC35-G通信模塊相連,并通過NB-IoT模塊控制數(shù)據(jù)發(fā)送頻率;BC35-G通信模塊與云平臺相連,實現(xiàn)雙向傳輸。NB-IoT模塊接線端子如圖2所示。通過控制STM32的PB0口,可以實現(xiàn)BC35-G通信模塊的上電和斷電。當(dāng)拉高PB0口,BC35-G通信模塊上電;當(dāng)拉低PB0口,BC35-G模塊斷電。
2.2 STM32
STM32單片機基于要求高性能、低成本、低功耗的嵌入式應(yīng)用設(shè)計的ARM Cortex-M內(nèi)核,比市場上同種類的單片機功能強大、使用簡單、開發(fā)方便[7]。本監(jiān)測系統(tǒng)采用STM32L476RCT6單片機,其具有功耗低、抗干擾能力強等特點。
STM32單片機硬件設(shè)計如圖3所示。STM32單片機通過串口連接采集模塊和通信模塊,收集機床工作狀態(tài)信息。同時通過I/O口連接ST7735S顯示模塊,實時顯示調(diào)試進程。利用單片機對采集到的數(shù)控機床關(guān)鍵部位溫度、位移等信息處理后,將數(shù)據(jù)通過NB-IoT網(wǎng)絡(luò)上傳到云平臺。
2.3 SIM800C
SIM800C是一款四頻GSM/GPRS模塊,為城堡孔封裝,其性能穩(wěn)定、體積小巧、性價比高,供電電壓為5~20 V,工作頻率為GSM/GPRS850/900/1 800/1 900 MHz,可實現(xiàn)低功耗語音、SMS和數(shù)據(jù)信息的傳輸。SIM800C模塊上引出接口,包括VCC,GND,TXD,RXD。調(diào)試時采用AT指令設(shè)置通信參數(shù),無線通信模塊的TXD和RXD端分別接STM32的RXD引腳和TXD引腳。
2.4 采集終端
采集終端的溫度傳感器使用DALLAS公司推出的DS18B20。DS18B20是一款可組網(wǎng)數(shù)字式溫度傳感器,在本監(jiān)測系統(tǒng)中通過編程實現(xiàn)12位溫度讀數(shù),其溫度分辨率為0.5 ℃。如圖4所示,溫度傳感器與STM32通過I/O口連接,最多可連接8個DS18B20溫度傳感器。
監(jiān)測系統(tǒng)對機床關(guān)鍵位置的振動通過位移傳感器采集,位移傳感器采用MyAntenna TW10S激光測距傳感器,與微控制器的連線如圖5所示。其中EN作為觸發(fā)信號,CLK和SDA為串行數(shù)據(jù)信號,MCU采用邊緣觸發(fā)中斷方式讀取SDA數(shù)據(jù),傳感器采用兩線串行通信方式,固定32位數(shù)據(jù)輸出,高位在前MSB,包含測量距離信息或故障碼。
3 系統(tǒng)軟件設(shè)計
軟件設(shè)計部分的主要目的是應(yīng)用計算機編程語言設(shè)計應(yīng)用程序?qū)Ω黝愋盘栠M行采集、處理、傳輸和分析,最終實現(xiàn)對數(shù)控機床的在線監(jiān)測。本系統(tǒng)需要軟硬件協(xié)同工作,實現(xiàn)對機床關(guān)鍵位置的監(jiān)測,軟件程序編寫包括數(shù)據(jù)采集模塊、通信模塊、實時監(jiān)測和報警模塊以及云平臺的連接。
3.1 數(shù)據(jù)采集
數(shù)據(jù)采集終端的工作流程如圖6所示。DS18B20溫度傳感器共有6種信號類型,分別為復(fù)位脈沖、應(yīng)答脈沖、寫0、寫1、讀0和讀1。6種信號中,除應(yīng)答脈沖外,都由主控制器發(fā)出同步信號,所有發(fā)送的命令和數(shù)據(jù)都是字節(jié)的低位在前。數(shù)據(jù)采集過程如下。
(1)初始化:主機輸出低電平,并保持低電平750 μs,以產(chǎn)生復(fù)位脈沖。主機釋放總線,通過上拉電阻將單總線拉高,并延時15 μs,進入接收模式,等待采集終端回應(yīng)。
(2)寫時序:包括寫0時序和寫1時序。所有寫時序至少需要60 μs,且在2次獨立的寫時序之間至少需要1 μs的恢復(fù)時間,兩種寫時序均起始于主機拉低總線。寫1時序:主機輸出低電平,延時2 μs,釋放總線,最后延時60 μs;寫0時序:主機輸出低電平,延時60 μs,并釋放總線,最后延時2 μs。
(3)讀時序:在主機發(fā)出讀數(shù)據(jù)命令后,立刻產(chǎn)生讀時序,從機傳輸數(shù)據(jù)。
(4)數(shù)據(jù)轉(zhuǎn)換:轉(zhuǎn)化后得到的12位數(shù)據(jù)存儲在DS18B20的隨機存儲器中,二進制中的前5位是符號位,如果測得的溫度大于0,則這5位為0,將測到的數(shù)值乘以系數(shù)0.062 5得到實際溫度;如果溫度小于0,則符號位的5位為1,測得的數(shù)值需要取反加1再乘以系數(shù)0.062 5得到實際溫度。
3.2 NB模塊
STM32和BC35-G通信模塊之間通過AT指令交互,AT指令集是從終端設(shè)備或數(shù)據(jù)終端設(shè)備向終端適配器和數(shù)據(jù)電路終端設(shè)備發(fā)送的[8]。在本文的監(jiān)測系統(tǒng)中,STM32使用串口通過AT命令控制BC35-G模塊,主程序工作流程如下:
(1)STM32初始化:對串口、LCD、蜂鳴器和與LED連接的硬件接口進行初始化,設(shè)置NB-IoT模塊上電后的LCD提示;
(2)STM32主動發(fā)起AT請求:命令以AT開頭,“\r\n”(回車換行)結(jié)尾,每發(fā)起一個請求需等待模塊響應(yīng),響應(yīng)以“OK”或者“ERROR”結(jié)尾。如果是“OK”,表明命令已被正確執(zhí)行,如果是“ERROR”,表示請求的命令錯誤,未被正確執(zhí)行;
(3)NB-IoT模塊返回AT主動碼:NB模塊狀態(tài)改變時,從串口輸出狀態(tài)信息,包括SN序列號、CSQ信號強度和COPS運營商信息等;
(4)串口收到字符串,插入行后,讀取一行并對數(shù)據(jù)進行解析,考慮是否達到最大值500,如果達到則換行。
3.3 實時監(jiān)測和報警
系統(tǒng)通過SIM800C模塊實現(xiàn)實時監(jiān)測和報警,通過發(fā)送AT指令和編寫SIM800C程序?qū)崿F(xiàn)短信和電話報警功能。程序步驟如下:
(1)利用AT指令測試串口通信是否正常,用查詢命令檢測SIM卡、信號質(zhì)量、注冊網(wǎng)絡(luò)和GPRS通信;
(2)利用AT指令設(shè)置回顯,顯示被叫號碼,撥打被叫號碼,實現(xiàn)電話報警;
(3)利用AT指令設(shè)置文本模式,使用Unicode編碼將號碼和短信內(nèi)容轉(zhuǎn)換為Unicode字符串并發(fā)送,實現(xiàn)短信報警;
(4)編寫指令發(fā)送及接收函數(shù):通過send_cmd函數(shù)控制發(fā)送AT指令,等待反饋。若返回指令得到有效數(shù)據(jù),那么接收的數(shù)據(jù)將被保存在接收緩沖區(qū)中。當(dāng)接收到應(yīng)答后,判斷接收的字符串中是否含有需要的數(shù)據(jù);
(5)編寫中斷服務(wù)函數(shù):每次接收數(shù)據(jù)后,將計數(shù)器清空,等待下一次接收,當(dāng)?shù)却龝r間超過10 ms時,在定時器中斷中標(biāo)記接收完成,外部函數(shù)讀取緩沖區(qū)值并判斷接收指令;
(6)利用自帶的字符串發(fā)送函數(shù)vsprintf,通過串口發(fā)送數(shù)據(jù)。
3.4 云平臺的連接
當(dāng)前針對小設(shè)備最有前景的兩種物聯(lián)網(wǎng)通信協(xié)議分別是MQTT協(xié)議和CoAP協(xié)議。
(1)CoAP協(xié)議基于UDP,是一個點對點協(xié)議,用于在客戶端與服務(wù)器之間傳輸狀態(tài)信息。
(2)MQTT協(xié)議基于TCP,是多個客戶端通過中央代理進行消息傳遞的多對多協(xié)議,相當(dāng)于消息傳遞的實時通信總線[9-10]。
針對本監(jiān)測系統(tǒng)實時報警和多路監(jiān)測的功能需求,物聯(lián)網(wǎng)云平臺和NB-IoT模塊之間基于MQTT協(xié)議通信。MQTT報文格式包括固定報頭、可變報頭和有效荷載(可變報頭和有效荷載在部分報文中沒有),固定報頭的格式如圖7所示。
利用MQTT協(xié)議連接OneNET云平臺,代碼編寫的主要內(nèi)容如下:
(1)編寫OneNet_DevLink函數(shù),創(chuàng)建TCP連接,連接MQTT服務(wù)器;
(2)依次打包產(chǎn)品ID、鑒權(quán)信息和設(shè)備ID數(shù)據(jù),發(fā)送至MQTT服務(wù)器;
(3)編寫NB_RxData解析函數(shù),連接響應(yīng),取服務(wù)器數(shù)
據(jù),其中解析取決于第一個字節(jié)的高4位,若為“是”,則判斷第二個字節(jié)是否為“0”,若為“0”,則通過串口顯示連接成功;
(4)編寫MQTT_PKT_PUBLISH心跳包發(fā)布函數(shù),在連接成功后,通過周期發(fā)送心跳包確認(rèn)連接;
(5)連接成功后,調(diào)用函數(shù)onenet_mqtt_publish_topic發(fā)布消息,消息組包的發(fā)送需內(nèi)部調(diào)用MQTT_PacketPublish函數(shù);
(6)調(diào)用函數(shù)onenet_mqtt_subscribe_topic訂閱主題,當(dāng)設(shè)備訂閱相關(guān)主題消息后,同一MQTT服務(wù)器下的其他設(shè)備發(fā)布相同主題的消息,由此訂閱相同主題的設(shè)備就能收到該消息,此外,內(nèi)部調(diào)用MQTT_PacketSubscribe函數(shù)來訂閱消息組包。
4 系統(tǒng)測試
在實驗室模擬環(huán)境中對機床工作溫度(-10~100 ℃)進行測試。在測試過程中,各模塊間通信正常,各路傳感器工作正常,系統(tǒng)工作穩(wěn)定。如圖8所示,系統(tǒng)定時向云平臺發(fā)送傳感器信息,可通過監(jiān)測界面實時監(jiān)測。當(dāng)振動或溫度超過設(shè)定閾值時,通過電話和短信通知用戶,及時報警。
5 結(jié) 語
本文利用物聯(lián)網(wǎng)技術(shù)設(shè)計實現(xiàn)了實時監(jiān)測、低成本和可二次開發(fā)的數(shù)控機床狀態(tài)監(jiān)測系統(tǒng)。通過設(shè)定報警閾值,利用GPRS遠程通信解決傳統(tǒng)數(shù)控機床監(jiān)測系統(tǒng)部署難的問題;同時,硬件系統(tǒng)設(shè)計中利用激光位移傳感器來探測數(shù)控機床關(guān)鍵位置的振動,最大限度降低探測器的硬件成本;支持主流物聯(lián)網(wǎng)MQTT通信協(xié)議,可實時在線監(jiān)測多路數(shù)控機床狀態(tài)信息。通過物聯(lián)網(wǎng)云平臺,可在移動設(shè)備端和桌面端增強數(shù)據(jù)的可視化水平。當(dāng)系統(tǒng)報警時,能夠通過短信、電話通知用戶及時處理,使監(jiān)測系統(tǒng)報警更加智能化、人性化,具有較好的推廣價值。
參考文獻
[1]廖建尚.物聯(lián)網(wǎng)&云平臺高級應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2016:1-2.
[2]中商產(chǎn)業(yè)研究院.2019年中國工業(yè)物聯(lián)網(wǎng)市場前景研究報告[J].電器工業(yè),2019(10):42-44.
[3]張云峰,李春雷.數(shù)控機床幾何誤差測量及誤差補償技術(shù)的研究[J].科技傳播,2016,8(5):179.
[4]高峰,郭為忠,宋清玉,等.重型制造裝備國內(nèi)外研究與發(fā)展[J].機械工程學(xué)報,2010,46(19):92-107.
[5]范展宏.NB-IoT窄帶物聯(lián)網(wǎng)的現(xiàn)狀以及發(fā)展前景[J].數(shù)字通信世界,2018(10):110-111.
[6]蔣震,王箏,曹中強,等.基于NB-IoT的溫濕度采集系統(tǒng)設(shè)計與實現(xiàn)[J].信息化研究,2018,44(6):63-69.
[7]謝桂輝,鄭旭初,趙天明,等.基于STM32和FPGA的遠程寬帶幅頻特性測試系統(tǒng)[J].現(xiàn)代電子技術(shù),2019,42(9):132-136.
[8]燕麗紅,王安斌,陳蓮琴.智能居家養(yǎng)老健康助手系統(tǒng)設(shè)計[J].物聯(lián)網(wǎng)技術(shù),2019,9(9):47-48.
[9]于洪濤,吳迪,朱齊山,等.一種基于無線透傳傳感網(wǎng)絡(luò)的分布式環(huán)境監(jiān)測系統(tǒng)的設(shè)計[J].現(xiàn)代電子技術(shù),2015,38(18):128-132.
[10]盧于輝,秦會斌.基于MQTT的智能家居系統(tǒng)的設(shè)計與實現(xiàn)[J].智能物聯(lián)技術(shù),2019,51(2):41-47.
作者簡介:李 響(1996—),湖北武漢人,碩士研究生,主要研究方向為物聯(lián)網(wǎng)技術(shù)、激光技術(shù)。