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