郭 靖,張 華
(浙江理工大學(xué) 機械與自動控制學(xué)院,杭州 310018)
所有脊椎動物的核心是感知環(huán)境、制定并執(zhí)行相應(yīng)行動的能力,而這種能力對于現(xiàn)在社會的所有人造機器來說也越來越重要.這就是智能物聯(lián)網(wǎng)IoT (Internet of Things)背后的驅(qū)動力.家庭、企業(yè)、政府和部署傳感器、收集數(shù)據(jù)以提供智能決策并對環(huán)境作出反應(yīng)的系統(tǒng),可以為人類創(chuàng)造一個更安全、更可持續(xù)、更舒適、更健康和更經(jīng)濟可行的世界[1,2].
根據(jù)《中國制造 2025》規(guī)劃指出,通過把信息化和工業(yè)化深度融合作為核心,輔以云計算、物聯(lián)網(wǎng)、大數(shù)據(jù)與現(xiàn)代制造業(yè)、生產(chǎn)性服務(wù)業(yè)等的融合創(chuàng)新,發(fā)展壯大新興業(yè)態(tài),打造新產(chǎn)業(yè)增長點.在目前的紡織工業(yè)領(lǐng)域中,紡織機械設(shè)備已經(jīng)從機械傳動全面轉(zhuǎn)型到自動化電子控制,實現(xiàn)電子成型.但對于如今層出不窮的物聯(lián)網(wǎng)新技術(shù)來說,遠遠沒有達到智能制造的標(biāo)準(zhǔn),生產(chǎn)制造各環(huán)節(jié)的效率還有很大的提升空間[3],國外意大利的薩維奧機械制造公司以實現(xiàn)應(yīng)用于紡紗機械的在線管理系統(tǒng)Savio Winder 4.0,日本村田機械公司也展示了其基于物聯(lián)網(wǎng)的智慧監(jiān)控工廠.國內(nèi)也有應(yīng)用紡織機械的E 系統(tǒng)和TIS 系統(tǒng),發(fā)揮出了不錯的效果.
為提高紡織機械中倍捻機的工作效率,降低成本,減少工人勞動強度.本文設(shè)計了一種基于物聯(lián)網(wǎng)的倍捻機監(jiān)控系統(tǒng),該系統(tǒng)能實時檢測錠子速度和紗線的斷紗情況,并提供一種驅(qū)動剪刀的能力.當(dāng)發(fā)生斷紗時,驅(qū)動剪刀剪斷紗線,同時系統(tǒng)會點亮紅色報警燈提醒工人處理斷紗問題,以及云端展示設(shè)備運行參數(shù)的功能.
本倍捻機監(jiān)控系統(tǒng)由云下系統(tǒng)和云上系統(tǒng)兩部分組成.其中云下系統(tǒng)又分為3 模塊:錠子管理器、節(jié)點控制器、DTU 網(wǎng)關(guān);云上系統(tǒng)分為MQTT 服務(wù)器、MySQL 服務(wù)器和Web 遠程監(jiān)控平臺.
紡織倍捻機[4]通常一節(jié)32 個錠位,本文的錠子管理器同時監(jiān)控4 組錠子,因此需要安裝8 塊錠子管理器監(jiān)控錠子的斷紗狀態(tài),也同時需要8 塊錠子管理器用來實現(xiàn)斷紗后驅(qū)動剪刀剪紗的功能.錠子管理器之間的通信基于RS485的Modbus 協(xié)議實現(xiàn),Modbus 將所有的錠子管理器采集的傳感器數(shù)據(jù)匯集到節(jié)點控制器處理,處理完成后通過Modbus 將反饋數(shù)據(jù)發(fā)送給特定的錠子管理器.同時,節(jié)點管理器將匯總好的數(shù)據(jù)利用另一組Modbus 串口發(fā)送給DTU 網(wǎng)關(guān),網(wǎng)關(guān)進行部分的邊緣計算后對數(shù)據(jù)打包,然后通過4G 模塊將數(shù)據(jù)幀傳輸置云端監(jiān)控平臺.云端監(jiān)控平臺的功能一方面是解析打包數(shù)據(jù)并分析,另一方面是以最直觀的方式展示實時數(shù)據(jù).
基于物聯(lián)網(wǎng)的倍捻機監(jiān)控系統(tǒng)具有以下功能特點:
1)實時檢測錠子速度和紗線是否斷紗;
2)自動報警和剪紗功能;
3)智能模塊實現(xiàn)即插即用,支持熱插拔;
4)智能模塊從站站號支持自學(xué)習(xí)自動編址,無需手動寫入站號地址;
5)多用戶登錄,對不同的用戶有不同的權(quán)限;
6)從Web 端實時查看設(shè)備的運行狀態(tài).
基于上述功能需求,本文將重點介紹系統(tǒng)的功能設(shè)計和實現(xiàn),并詳細說明智能模塊實現(xiàn)通信的軟件和硬件設(shè)計思想.
錠子管理器的硬件如圖1所示,由以下5 個部分構(gòu)成:基于STM8S003F3P6的主控芯片、電源電路、RS485 接口電路、輸入驅(qū)動電路和輸出驅(qū)動電路[5,6].
圖1 錠子管理器主控板實物圖
STM8S003F3P6是ST 公司推出對標(biāo)51 芯片高性價比8 位單片機,主頻最高達到16 MHz,包含I2C,IrDA,LIN,SPI,UART/USART 多種通訊外設(shè),程序存儲容量16 KB,內(nèi)置EEPROM 存儲,完全滿足本智能模塊的運行和運算需求.
電源電路如圖2所示,它的功能是將外部接入的24 V 直流電壓提供給斷紗傳感器和輸出剪刀提供電源,同時將另一部分降壓穩(wěn)壓到5 V 直流電壓,為主控芯片提供電源.
圖2 電源電路原理圖
RS485 接口電路如圖3所示,是本錠子管理器模塊的核心部分,RS485 硬件接口采用RJ45 插座和RJ45 水晶頭組合,模塊的外部24 V 輸入電源線、RS485信號線、自動編址線集成到網(wǎng)線,網(wǎng)線中分配多根連接線用于輸入24 V 電源,提高了模塊的輸入功率;RJ45的引針1、2 作為RS485的發(fā)送引腳A和接收引腳B;左側(cè)RJ45的引針3 直連到主控芯片的GPIO的SIG_ACK 引腳上,作為輸入信號讀取上一級輸出信號,右側(cè)RJ45的引針3 則直連到主控芯片的CTL_ACK 引腳上,用作輸出信號傳輸電壓信號給下一級的模塊的SIG_ACK 輸入引腳.Modbus 從站的自學(xué)習(xí)自動編址功能,基于上述的SIG_ACK和CTL_ACK 單總線實現(xiàn).
圖3 RS485 接口電路圖
節(jié)點控制器基于ARM? Cortex?-M0 內(nèi)核的STM32F030 芯片開發(fā),和錠子管理器、網(wǎng)關(guān)分別構(gòu)建兩個獨立的Modbus 網(wǎng)絡(luò)[7–9].該控制器作為錠子管理器端Modbus 主站,接收所有從站數(shù)據(jù)和數(shù)據(jù)處理,如果發(fā)生斷紗,連接在此控制器的報警燈就會驅(qū)動報警,閃爍紅燈.在網(wǎng)關(guān)所在Modbus 網(wǎng)絡(luò)中,節(jié)點作為Modus 從站,實時接收網(wǎng)關(guān)下發(fā)的查詢命令和寫入命令.
本系統(tǒng)網(wǎng)關(guān)選擇的4G-DTU 模塊,采用EC20 內(nèi)核,支持TCP/IP 協(xié)議、MQTT 協(xié)議、HTTP 協(xié)議等多種協(xié)議[10].支持二次開發(fā),極大的提升效率,縮短開發(fā)時間.網(wǎng)關(guān)初始化有兩種模式選擇,一種是獨立使用EC20 模塊屏蔽DTU的主控芯片控制,另一種是通過主控芯片驅(qū)動EC20 模塊,進行二次編程開發(fā).網(wǎng)關(guān)的工作電壓3.3–4.3 V,本系統(tǒng)使用工作電壓3.8 V,因為用邊緣值電壓,電壓波動會造成模塊工作不穩(wěn)定,電源電路圖如圖4所示.網(wǎng)關(guān)的作用是連接互聯(lián)網(wǎng)和傳感網(wǎng),將傳感網(wǎng)匯總數(shù)據(jù)打包通過4G 網(wǎng)絡(luò)和MQTT 應(yīng)用層協(xié)議傳輸?shù)組QTT 服務(wù)器端,然后MQTT 服務(wù)器轉(zhuǎn)發(fā)到MySQL 服務(wù)器儲存數(shù)據(jù),同時網(wǎng)關(guān)作為MQTT客戶端也實時接收MQTT 服務(wù)器下發(fā)的數(shù)據(jù)幀,然后解析下發(fā)到節(jié)點網(wǎng)絡(luò).EC20 模塊支持多種工作模式,如表1.
表1 EC20 工作模式
圖4 EC20 電源原理圖
最少功能模式可以將模塊功能減少到最少程度,此模式可以通過發(fā)送AT+CFUN=
云下數(shù)據(jù)采集系統(tǒng)的執(zhí)行流程:系統(tǒng)上電,各模塊初始化,系統(tǒng)初始化檢查自動編址標(biāo)志位,判斷是否需要將錠子管理器從站地址重新按順序編址.無需自動編址時,節(jié)點控制器主站從EEPROM中讀取第一次運行時獲取和儲存的各個從站的全球唯一ID 碼,再通過Modbus 通信輪詢獲取從站的全球唯一ID 碼,將EEPROM中讀取的ID和在從站獲取的ID 碼進行比較是否一致,如不一致則報“從站ID 碼異?!眻缶?至此設(shè)備初始化成功,運行準(zhǔn)備就緒.采集模塊數(shù)據(jù)的狀態(tài)保存在 USERPARAM 結(jié)構(gòu)體:
typedef struct//控制 IO 輸入輸出狀態(tài)結(jié)構(gòu)體
{
uint8_t STM8S_ID[12];//全球唯一 ID 碼
uint16_t input[4];//4 組探絲傳感器狀態(tài)
uint16_t output[4];//4 組剪絲器狀態(tài)
uint16_t slaveAddr;//從站號地址
}USERPARAM
圖5為云下系統(tǒng)初始化流程圖,在系統(tǒng)第一次部署或重新部署時,系統(tǒng)初始化進入自動編址模式.第1 步,主站通過Modbus 向所有從站廣播重新編址數(shù)據(jù)幀,當(dāng)從站接收到廣播后,會自動進入編址模式,監(jiān)控SIG_ACK 端口電平信號;第2 步,主站向1 號從站使用CTL_ACK 輸出高電平信號,1 號從站監(jiān)控到端口電平變化,發(fā)送攜帶自身全球唯一ID 碼的Modbus 數(shù)據(jù)幀給主站,并將自身從站號改成臨時從站號0xFF;第3 步,主站接收來自從站的全球唯一ID 碼,按從站排列順序分配從站號,將全球唯一ID 號和從站號綁定,存入EEPROM 存儲器,接著向0xFF 從站發(fā)送分配從站號數(shù)據(jù)幀,等待從站響應(yīng)確認數(shù)據(jù)幀;第4 步,從站修改將新從站號寫入掉電保持寄存器,回復(fù)寫入確認數(shù)據(jù)幀,拉高CTL_ACK 端口電平,下一級從站過程同上.當(dāng)所有從站號分配完成后,系統(tǒng)初始化成功,準(zhǔn)備就緒.運行階段節(jié)點模塊調(diào)用check_inputStatus()函數(shù)輪詢讀取錠子狀態(tài),并保存數(shù)據(jù)到節(jié)點模塊的相應(yīng)結(jié)構(gòu)體中,數(shù)據(jù)結(jié)構(gòu)如下所示:
圖5 云下系統(tǒng)初始化流程
typedef struct
{
uint32_t runsign;
uint32_t input;
uint32_t output;
uint32_t shieldFlags;
uint8_t slaveID[SLAVENUM][ID_LENGTH];
uint32_t startDelay;
uint32_t midwayRecoveryDelay;
uint32_t scissorCount[SCISSORNUM];
}USERPARAM;
typedef struct
{
uint16_t reSendTimeoutALARAM;
uint8_t slaveNumberErr;
uint16_t slaveID_Conflict;
uint8_t autoAddrErr:1;
}ALARAM;
圖6為云下系統(tǒng)傳感網(wǎng)組網(wǎng)圖,采用Modbus 通信協(xié)議[11]組成傳感網(wǎng)絡(luò),倍捻機數(shù)據(jù)上傳到云端服務(wù)器基于TCP/IP的MQTT[12]協(xié)議實現(xiàn).
圖6 云下系統(tǒng)傳感網(wǎng)組網(wǎng)圖
IoT 監(jiān)控系統(tǒng)的通信協(xié)議主要包括兩個部分,MQTT物聯(lián)網(wǎng)協(xié)議和HTTP 超文本傳輸協(xié)議.系統(tǒng)的功能實現(xiàn)基于MQTT 服務(wù)器、MySQL 數(shù)據(jù)庫、Web 服務(wù)器,部署于阿里云的Linux 云服務(wù)器,通信邏輯和交互過程如圖7所示.
圖7 IOT 監(jiān)控系統(tǒng)組成圖
IoT 監(jiān)控系統(tǒng)中的MQTT 服務(wù)器負責(zé)訂閱、轉(zhuǎn)發(fā)MQTT 客戶端消息和客戶端的權(quán)限管理,防止非本系統(tǒng)允許的MQTT 客戶端接入本監(jiān)控系統(tǒng).位于IoT 監(jiān)控系統(tǒng)中的MQTT 客戶端是運行于Web 服務(wù)器進程內(nèi)的子線程,用于接收MQTT 服務(wù)器數(shù)據(jù)并轉(zhuǎn)存入MySQL 數(shù)據(jù)庫或讀取數(shù)據(jù)庫數(shù)據(jù)發(fā)布至MQTT 服務(wù)器,最后轉(zhuǎn)發(fā)到目的MQTT 客戶終端.
Web 服務(wù)器:基于Django 3.0.7 版本實現(xiàn),采用MTV (model-template-views)開發(fā)模式[13,14],如圖8所示.
圖8 MTV 開發(fā)模式圖
IoT 監(jiān)控系統(tǒng)實現(xiàn)主要功能:(1)Web 服務(wù)器通過Ajax 技術(shù)[15]輪詢實時呈現(xiàn)監(jiān)控數(shù)據(jù)做到可視化大屏;(2)實現(xiàn)在線修改編輯工藝參數(shù)并調(diào)用MQTT 客戶端接入MQTT 物聯(lián)網(wǎng)協(xié)議網(wǎng)絡(luò),實現(xiàn)下發(fā)修改數(shù)據(jù)或者手動拉取終端設(shè)備監(jiān)控參數(shù)、工藝參數(shù)、設(shè)備參數(shù)等功能;(3)多用戶權(quán)限管理,根據(jù)工廠員工的職位差別給予不同的網(wǎng)頁權(quán)限管理.
RBAC是基于角色的訪問控制(role-based access control),在 RBAC中,公司權(quán)限與公司的角色相聯(lián)系,用戶通過成為適當(dāng)角色的成員而得到這些角色的權(quán)限.極大地簡化了權(quán)限的管理.這樣管理都是層級相互依賴,權(quán)限賦予給角色,而把角色又賦予用戶,權(quán)限設(shè)計清楚,管理方便,圖9為多用戶權(quán)限管理后臺頁面.
圖9 多用戶權(quán)限管理后臺頁面
1)操作系統(tǒng):Ubuntu 18.04 64 位
2)CPU:1 核、內(nèi)存:2 GiB、使用帶寬:1 Mb/s
3)MySQL 5.7.30/Django 3.0.7/Mosquitto 1.6.9
倍捻機設(shè)備如圖10所示,其分布了多個速度檢測傳感器、斷紗檢測傳感器和剪刀模塊.其中這些傳感器共同構(gòu)成了本系統(tǒng)的傳感器網(wǎng)絡(luò),收集卷繞、上錠、羅拉、下錠、氨綸的速度和每個錠位紗線的斷紗狀態(tài).系統(tǒng)運行主要分成兩個部分:云下系統(tǒng)和云上系統(tǒng),云下系統(tǒng)使用基于RS485的Modbus 協(xié)議,波特率為9600 b/s,輪詢查詢傳感器的狀態(tài)并處理.對于云上系統(tǒng)和云下系統(tǒng)的通信,本系統(tǒng)提供3 種方法:(1)按一定時間間隔固定發(fā)送數(shù)據(jù)到云端,其中時間間隔可以設(shè)置,以適應(yīng)不同的應(yīng)用場景.(2)觸發(fā)式上傳,當(dāng)云下系統(tǒng)的傳感器檢測到異常時,才主動上傳數(shù)據(jù)到云端系統(tǒng),此模式可以有效節(jié)省數(shù)據(jù)流量.(3)云上系統(tǒng)主動拉取云下數(shù)據(jù)模式.
圖10 倍捻機監(jiān)控系統(tǒng)部署
系統(tǒng)運行實例:當(dāng)系統(tǒng)開始運行,節(jié)點控制器輪詢讀取錠子管理器上的錠子狀態(tài)和倍捻機電機轉(zhuǎn)速,將數(shù)據(jù)匯總處理,如有速度異?;驍嗉啴惓?系統(tǒng)本地紅燈報警,錠子管理器驅(qū)動剪刀剪線停止卷繞過程,同時上傳到云平臺,用戶可訪問網(wǎng)頁實時查看和分析設(shè)備數(shù)據(jù),設(shè)備故障情況.圖11和圖12顯示了網(wǎng)頁實時顯示監(jiān)控數(shù)據(jù)的情況,圖13為倍捻機工藝參數(shù)設(shè)置頁面.
圖11 倍捻機傳感器狀態(tài)監(jiān)控頁面
圖12 倍捻機運行參數(shù)監(jiān)控頁面
圖13 倍捻機工藝參數(shù)設(shè)置頁面
經(jīng)過系統(tǒng)測試,云下系統(tǒng)基本能實現(xiàn)紗線斷紗故障快速處理,模塊驅(qū)動剪斷廢料紗線,避免了原材料的浪費.云上系統(tǒng)的實時監(jiān)控功能為操作工減少了約3 小時工作量,取消長時間的巡邏檢查錠子紗線的卷繞環(huán)節(jié),只需關(guān)注系統(tǒng)警報.車間的管理員可以在PC 端或手機端實時查看車間電子成型設(shè)備的運行情況,提高了工人25%的工作效率,減少了約2.1%的原材料成本.
本文設(shè)計并實現(xiàn)的一種基于物聯(lián)網(wǎng)的倍捻機監(jiān)控系統(tǒng),分為云上系統(tǒng)和云下系統(tǒng)兩部分,云上系統(tǒng)Web 服務(wù)器可實時獲取倍捻機運行關(guān)鍵位置速度和紗線異常情況,有利于確保整個紡織機械設(shè)備的安全可靠的運行.整個系統(tǒng)采用模塊化處理,具備良好的可擴展性、穩(wěn)定性和可移植性,云下系統(tǒng)采集傳感器數(shù)據(jù)的智能模塊(錠子管理器)選用的是STM8S003 微處理器,其外設(shè)多,性能高,成本低廉,易于大量應(yīng)用和移植,整個系統(tǒng)已經(jīng)應(yīng)用在倍捻機設(shè)備測試機上并經(jīng)過實驗測試,數(shù)據(jù)可靠,運行穩(wěn)定,在一定程度上提高了工人的工作效率,減低了生產(chǎn)成本.