丁 坤,胡旭東,彭來湖
(浙江理工大學(xué) 浙江省現(xiàn)代紡織裝備技術(shù)重點(diǎn)實(shí)驗(yàn)室,浙江 杭州 310018)
近年來,物聯(lián)網(wǎng)技術(shù)不斷發(fā)展和成熟,已經(jīng)在智能家居、電網(wǎng)設(shè)備、物流設(shè)備、醫(yī)療設(shè)備以及農(nóng)業(yè)設(shè)備等方面得到了廣泛應(yīng)用[1].由物聯(lián)網(wǎng)技術(shù)發(fā)展而來的針織機(jī)械設(shè)備聯(lián)網(wǎng)平臺(tái)研究方興未艾,企業(yè)對(duì)生產(chǎn)過程中設(shè)備的聯(lián)網(wǎng)需求也越來越迫切.但是,目前大多數(shù)針織無縫內(nèi)衣機(jī)的擋車工文化水平普遍不高,對(duì)機(jī)器設(shè)備認(rèn)知程度有限,只會(huì)做一些簡單重復(fù)的操作.而且,生產(chǎn)車間中一人管理多臺(tái)機(jī)器,不能及時(shí)了解每臺(tái)機(jī)器的生產(chǎn)情況,也不能對(duì)實(shí)際生產(chǎn)中出現(xiàn)的故障進(jìn)行及時(shí)處理,機(jī)器一旦出現(xiàn)故障就需要專業(yè)機(jī)修人員排查情況進(jìn)行檢修,造成了生產(chǎn)效率低下的局面.此外,在傳統(tǒng)針織生產(chǎn)企業(yè)中,管理人員管控車間生產(chǎn)過程和了解生產(chǎn)情況都依賴紙質(zhì)計(jì)劃進(jìn)度卡,信息反饋和匯總滯后,無法及時(shí)掌握訂單完成情況,不利于管理者監(jiān)督和指導(dǎo)生產(chǎn)[2].為此,本課題深入分析針織無縫內(nèi)衣機(jī)的工藝和設(shè)備參數(shù)特點(diǎn),根據(jù)聯(lián)網(wǎng)功能需求,提出針織設(shè)備聯(lián)網(wǎng)總體結(jié)構(gòu)框架,設(shè)計(jì)一種針織無縫內(nèi)衣機(jī)監(jiān)控系統(tǒng)的信息采集終端.作為針織機(jī)聯(lián)網(wǎng)系統(tǒng)最底層的部分,該設(shè)備終端致力于和服務(wù)器建立穩(wěn)定的通信鏈路,提供最原始的數(shù)據(jù)源.集成后的機(jī)聯(lián)網(wǎng)系統(tǒng)運(yùn)用信息化和網(wǎng)絡(luò)化技術(shù),可實(shí)現(xiàn)無縫內(nèi)衣機(jī)生產(chǎn)車間的智能監(jiān)控,使生產(chǎn)管理更加便捷、高效.
本課題以浙江日發(fā)RFSM20型針織無縫內(nèi)衣機(jī)為測試平臺(tái),在嵌入式硬件系統(tǒng)已經(jīng)完善的基礎(chǔ)上,進(jìn)行設(shè)備客戶端和監(jiān)控系統(tǒng)的開發(fā).其總體開發(fā)方案是:擴(kuò)展Wi-Fi模塊接口,開發(fā)人機(jī)交互軟件作為客戶端;以無線路由器為通信媒介,通過TCP/IP網(wǎng)絡(luò)協(xié)議建立客戶端與服務(wù)器的連接;服務(wù)器將客戶端發(fā)來的數(shù)據(jù)存入數(shù)據(jù)庫,由后臺(tái)進(jìn)行數(shù)據(jù)處理并與Android手機(jī)客戶端進(jìn)行數(shù)據(jù)交互;最終由Android手機(jī)客戶端實(shí)現(xiàn)對(duì)機(jī)械設(shè)備的監(jiān)控.
該系統(tǒng)主要由三部分組成,其總體架構(gòu)如圖1所示.
(1)應(yīng)用基于Qt Creator的應(yīng)用程序開發(fā)框架來設(shè)計(jì)設(shè)備終端軟件.該設(shè)備終端的主要功能是采集原始數(shù)據(jù)并按所制定的協(xié)議格式將數(shù)據(jù)包傳輸至服務(wù)器.遠(yuǎn)程設(shè)備對(duì)針織無縫內(nèi)衣機(jī)的監(jiān)控是通過設(shè)備終端和硬件控制層的數(shù)據(jù)交互來完成的.
(2)應(yīng)用基于GatewayWorker的socket服務(wù)器開發(fā)框架和基于MySQL的數(shù)據(jù)庫軟件來完成服務(wù)器端的數(shù)據(jù)接收和存儲(chǔ),為前端頁面提供數(shù)據(jù)支撐.
(3)應(yīng)用基于thinkPhp框架開發(fā)的后臺(tái)軟件完成對(duì)數(shù)據(jù)庫中相關(guān)數(shù)據(jù)的提取與分析,最終返回JSON包來應(yīng)答Android手機(jī)客戶端獲取數(shù)據(jù)的請(qǐng)求[3].
嵌入式設(shè)備終端的硬件是基于ARM Cortex-A8的高性能處理器,采用德州儀器公司的AM335x系列核心板,運(yùn)行在剪裁后的Linux操作系統(tǒng)之上.運(yùn)行該應(yīng)用程序所需要的硬件接口模塊包括RS422-Wi-Fi接口、RS485鍵盤接口、LCD顯示器接口、USB接口[4].系統(tǒng)的硬件設(shè)計(jì)框架如圖2所示.
圖2 系統(tǒng)硬件框架
Wi-Fi模塊電路設(shè)計(jì)主要圍繞Wi-Fi模塊展開.通過搭建Wi-Fi模塊的外圍接口電路,實(shí)現(xiàn)其與主控板上擴(kuò)展的RS422接口的數(shù)據(jù)交互.Wi-Fi模塊采用安信可公司的ESP8266-07S型芯片.該模塊基于UART-Wi-Fi的聯(lián)通方式,功耗低、可支持板載天線,增加傳輸距離[5].該芯片共有17個(gè)引腳,工作狀態(tài)電壓為3.3 V,GPIO0引腳上拉,ADC(Analog-to-Digital Converter)引腳上拉,GPIO15引腳下拉(圖3).
設(shè)備終端和服務(wù)器的通信要求雙方能同時(shí)進(jìn)行數(shù)據(jù)收發(fā),另外,無線收發(fā)器安裝在機(jī)器頂部,要求傳輸距離遠(yuǎn).本課題采用的RS485通信接口見圖4.由RS485接口組成的半雙工網(wǎng)絡(luò),最大傳輸距離約為1 219 m,最大傳輸速率高達(dá)10 Mbps.由于采用的SP490E收發(fā)芯片的使能電壓為5 V,而Wi-Fi模塊工作電壓為3.3 V,故還需要一個(gè)電源轉(zhuǎn)化電路來實(shí)現(xiàn)降壓.該電源轉(zhuǎn)化電路如圖5所示.
圖3 Wi-Fi模塊電路
圖4 RS485接口電路
圖5 電源轉(zhuǎn)化電路
針織無縫內(nèi)衣機(jī)生產(chǎn)數(shù)據(jù)主要包括設(shè)備數(shù)據(jù)、工藝數(shù)據(jù)、產(chǎn)量數(shù)據(jù)、運(yùn)行數(shù)據(jù)和故障數(shù)據(jù)等.將這些數(shù)據(jù)存檔并上傳到服務(wù)器才能反映設(shè)備的整體信息.
設(shè)備數(shù)據(jù)是無縫內(nèi)衣機(jī)的固有信息,包括設(shè)備編號(hào)、類型、尺寸、總針數(shù)、零位針、總脈沖數(shù)等.工藝數(shù)據(jù)是與無縫內(nèi)衣機(jī)產(chǎn)品相關(guān)的信息,包括產(chǎn)品類型、鏈條步驟和循環(huán)數(shù)、壓針電機(jī)的轉(zhuǎn)速和角度等.產(chǎn)量數(shù)據(jù)是與無縫內(nèi)衣機(jī)生產(chǎn)相關(guān)的信息,包括生產(chǎn)一件產(chǎn)品所需的時(shí)間、計(jì)劃生產(chǎn)的產(chǎn)品數(shù)量和已經(jīng)完成的產(chǎn)品數(shù)量等.運(yùn)行數(shù)據(jù)指無縫內(nèi)衣機(jī)運(yùn)行過程中的動(dòng)態(tài)信息,包括當(dāng)前針數(shù)、當(dāng)前角度、固定出針、當(dāng)前速度、微調(diào)值等.故障數(shù)據(jù)指無縫內(nèi)衣機(jī)可能發(fā)生的突發(fā)報(bào)警信息,包括探針報(bào)警、機(jī)頭異常報(bào)警、儲(chǔ)緯器斷紗報(bào)警、出衣口織物未通過報(bào)警、驅(qū)動(dòng)設(shè)備通訊異常報(bào)警等.
這些數(shù)據(jù)的采集過程主要涉及兩個(gè)方面:一方面是主控的傳輸數(shù)據(jù),終端設(shè)備與下位機(jī)采用雙口RAM(Random Access Memory)并行通訊模式,高效穩(wěn)定地相互收發(fā)數(shù)據(jù);另一方面是用戶自主的輸入數(shù)據(jù),用戶可以根據(jù)生產(chǎn)產(chǎn)品的要求自行設(shè)置相關(guān)參數(shù),下發(fā)花型文件.最終,所有數(shù)據(jù)被匯總和封裝成協(xié)議所規(guī)定的類型,分發(fā)給無線通信接口來調(diào)用(圖6).
圖6 數(shù)據(jù)采集過程
無線模塊是設(shè)備終端和服務(wù)器通信的橋梁,本課題采用的ESP8266-07S型模塊集成了豐富的SDK(Software Development Kit)開發(fā)包,包括基礎(chǔ)AT(Attention)指令、Wi-Fi功能AT指令、TCP/IP工具箱AT指令等.在此基礎(chǔ)上設(shè)計(jì)了一套連接周圍路由器和登錄服務(wù)器的方案.其客戶端和服務(wù)器通信所需AT指令集如表1所示.
表1 客戶端和服務(wù)器通信所需AT指令集
在內(nèi)衣機(jī)正常生產(chǎn)狀態(tài)下,由設(shè)備終端獲得主動(dòng)權(quán),向服務(wù)器傳輸所需類型的數(shù)據(jù).這些數(shù)據(jù)由數(shù)據(jù)采集框架集成后按照協(xié)議被傳輸?shù)椒?wù)器.設(shè)備終端數(shù)據(jù)上傳流程如圖7所示.
(1)在設(shè)備終端和服務(wù)器建立連接的基礎(chǔ)上,新設(shè)備需要注冊(cè)到服務(wù)器上,否則就不能進(jìn)行正常的數(shù)據(jù)傳輸.
(2)確認(rèn)注冊(cè)后設(shè)備終端已登錄服務(wù)器,開啟設(shè)備終端和服務(wù)器的會(huì)話后才能發(fā)送設(shè)備數(shù)據(jù)和工藝數(shù)據(jù).
(3)在設(shè)備空閑且未關(guān)機(jī)的情況下,用戶可以選擇更換產(chǎn)品工藝文件,由設(shè)備終端向服務(wù)器發(fā)送新的工藝數(shù)據(jù).如果不更換產(chǎn)品,則繼續(xù)判斷設(shè)備是否空閑.
(4)在設(shè)備處于非空閑情況下,當(dāng)設(shè)備發(fā)生故障時(shí),終端向服務(wù)器傳輸詳細(xì)的報(bào)警信息,等待故障消除后傳輸報(bào)警消除信息,然后繼續(xù)判斷有無故障.設(shè)備未發(fā)生故障,即設(shè)備處于運(yùn)行狀態(tài)時(shí),終端向服務(wù)器傳輸運(yùn)行數(shù)據(jù).
圖7 設(shè)備終端數(shù)據(jù)上傳流程
除了設(shè)備終端獲得主動(dòng)權(quán)向服務(wù)器實(shí)時(shí)傳輸數(shù)據(jù)以外,在傳輸文件時(shí),一般由服務(wù)器主動(dòng)控制設(shè)備終端.用于無縫內(nèi)衣機(jī)生產(chǎn)的文件共7種,包括生產(chǎn)文件(參數(shù)文件、花型文件)和系統(tǒng)文件(主控程序升級(jí)文件、密度電機(jī)程序升級(jí)文件、電磁閥程序升級(jí)文件、磁保持式選針器升級(jí)文件、人機(jī)交互程序升級(jí)文件)[6].傳輸文件的過程涉及整個(gè)系統(tǒng)的聯(lián)動(dòng),而不僅僅是接收和保存數(shù)據(jù).設(shè)備終端接收數(shù)據(jù)流程如圖8所示.
圖8 設(shè)備終端接收數(shù)據(jù)流程
(1)服務(wù)器進(jìn)入控制設(shè)備終端模式后,判斷設(shè)備終端此時(shí)是否允許控制,如果不允許控制,則不能傳輸文件.
(2)如果設(shè)備終端允許控制,則服務(wù)器可將以上7種類型的文件傳輸?shù)皆O(shè)備終端,其他類型文件將被過濾掉.
(3)服務(wù)器將文件按照既定字節(jié)數(shù)分成多個(gè)包,分包發(fā)送文件,設(shè)備終端持續(xù)接收每包數(shù)據(jù)并保存文件.
(4)接收完成后,設(shè)備終端開始校驗(yàn)文件的正確性,并且反饋給服務(wù)器.如果接收正確,設(shè)備終端會(huì)保存文件并且開始按照文件類型進(jìn)行處理,反之,設(shè)備終端將刪除文件.
制定客戶端與服務(wù)器之間的通信協(xié)議是為了雙方能夠按照協(xié)議內(nèi)容進(jìn)行編碼和解碼,分析機(jī)器實(shí)際生產(chǎn)過程,解析出機(jī)器當(dāng)前狀態(tài),達(dá)到監(jiān)控目的.協(xié)議制定的宗旨是形成封閉路,實(shí)現(xiàn)閉環(huán)傳輸.
根據(jù)生產(chǎn)的具體過程可制定出5種類型的協(xié)議,即注冊(cè)型、會(huì)話型、狀態(tài)型、傳輸型和空閑型.5種類型的協(xié)議均采用問答式,在一來一往之間即可相互得知對(duì)方的目前狀態(tài).
(1)注冊(cè)型:新設(shè)備注冊(cè)到服務(wù)器時(shí)所需的必要步驟,未注冊(cè)過的設(shè)備不能開啟與服務(wù)器的會(huì)話.
(2)會(huì)話型:在設(shè)備開關(guān)機(jī)時(shí)使用,用于開啟和關(guān)閉服務(wù)器中對(duì)每個(gè)設(shè)備終端申請(qǐng)的服務(wù),保證各客戶端通信線路的暢通.
(3)狀態(tài)型:在設(shè)備運(yùn)行、停車、報(bào)警狀態(tài)下使用,用于服務(wù)器對(duì)客戶端狀態(tài)的實(shí)時(shí)監(jiān)測.
(4)傳輸型:在設(shè)備停車時(shí),服務(wù)器主動(dòng)傳輸參數(shù)或文件的情況下使用,設(shè)備終端接收服務(wù)器指令信息并回復(fù)傳輸結(jié)果.
(5)空閑型:在設(shè)備處于空閑時(shí)使用,判斷設(shè)備終端和服務(wù)器的通信過程是否存在異常情況.
針織無縫內(nèi)衣機(jī)的生產(chǎn)情況特別是所做產(chǎn)品的花型文件和工藝參數(shù)文件一旦被泄露,對(duì)用戶來說將會(huì)造成不可挽回的損失.因此,在無線通信過程中對(duì)數(shù)據(jù)的加密尤為重要,必須提高設(shè)備注冊(cè)、設(shè)備登錄以及數(shù)據(jù)傳輸過程的安全性.
(1)設(shè)備注冊(cè)是新設(shè)備注冊(cè)到服務(wù)器的過程,也是必要的初始化步驟.因?yàn)闊o線模塊具有MAC(Media Access Control)地址的唯一性,所以可以將注冊(cè)指令設(shè)計(jì)成注冊(cè)類型+設(shè)備編號(hào)+MAC地址的形式.其中MAC地址采用MD5(Message-Digest Algorithm 5)加密算法加密[7],在數(shù)據(jù)庫中存儲(chǔ)加密后Hash散列值,用于后序的設(shè)備登錄驗(yàn)證.
(2)設(shè)備會(huì)話是注冊(cè)后設(shè)備登錄服務(wù)器的第一條指令,旨在區(qū)分該設(shè)備是否合法,不合法即未注冊(cè)過的設(shè)備將不允許訪問服務(wù)器.其指令編碼為會(huì)話類型+設(shè)備編號(hào)+MAC地址的形式,也可采用MD5加密算法加密.服務(wù)器通過驗(yàn)證判斷已登錄設(shè)備發(fā)起的會(huì)話MD5散列值是否與數(shù)據(jù)庫注冊(cè)表中的MD5散列值有匹配項(xiàng).如果二者有匹配項(xiàng),則已登錄設(shè)備屬于合法設(shè)備;反之,則其為不合法設(shè)備.
(3)實(shí)時(shí)數(shù)據(jù)傳輸過程是設(shè)備終端與服務(wù)器交互過程中最重要的階段,這些數(shù)據(jù)也是需要重點(diǎn)保護(hù)的對(duì)象.其指令編碼由傳輸類型+MAC地址+傳輸內(nèi)容組成.其中,傳輸內(nèi)容采用AES(Advanced Encryption Standard)對(duì)稱加密算法[8]進(jìn)行高強(qiáng)度加密.
設(shè)備終端和服務(wù)器在通信過程中總會(huì)發(fā)生一些異常情況,即通信路徑不再聯(lián)通,對(duì)此可從整個(gè)系統(tǒng)的角度出發(fā)分析造成異常的原因.
無線模塊異常是指無線模塊自身穩(wěn)定性方面可能存在的問題,如實(shí)際應(yīng)用過程中發(fā)現(xiàn)該模塊偶爾發(fā)生自動(dòng)重啟的情況;通信延時(shí)異常是指無線網(wǎng)絡(luò)可能信號(hào)較弱,導(dǎo)致數(shù)據(jù)的傳輸不及時(shí)而影響系統(tǒng)的實(shí)時(shí)性;設(shè)備終端發(fā)送異常是指設(shè)備終端發(fā)送數(shù)據(jù)的時(shí)間間隔過短或者存在數(shù)據(jù)錯(cuò)誤,導(dǎo)致服務(wù)器出現(xiàn)無法解析指令的情況,也包括設(shè)備終端被強(qiáng)制關(guān)機(jī)或者車間斷電等造成的異常;服務(wù)器自身異常是指服務(wù)器在發(fā)送數(shù)據(jù)時(shí)存在錯(cuò)誤或者服務(wù)器斷電等造成通信過程的異常.
針對(duì)以上問題,必須采取必要的手段進(jìn)行處理,使系統(tǒng)能夠自動(dòng)恢復(fù)正常.
(1)從設(shè)備終端的角度來說,在設(shè)備處于非空閑狀態(tài)時(shí),設(shè)備終端每當(dāng)給服務(wù)器傳輸一條數(shù)據(jù)都會(huì)接收服務(wù)器的數(shù)據(jù)反饋.如果多次傳輸數(shù)據(jù)而未收到服務(wù)器的數(shù)據(jù)反饋,那么有理由判斷為設(shè)備終端已經(jīng)中斷與服務(wù)器的連接;在設(shè)備處于空閑狀態(tài)時(shí),服務(wù)器會(huì)開啟空閑驗(yàn)證,如果驗(yàn)證時(shí)間超時(shí),則也可判斷為設(shè)備終端與服務(wù)器中斷連接.
(2)從服務(wù)器的角度來說,在操作設(shè)備終端的情況下,如果設(shè)備終端連續(xù)發(fā)送多條服務(wù)器解析不了的數(shù)據(jù),服務(wù)器將中斷與設(shè)備終端的連接;在未操作設(shè)備終端的情況下,服務(wù)器多次沒有收到設(shè)備終端的空閑驗(yàn)證反饋,也將判斷為與設(shè)備終端已經(jīng)斷開連接.
完成系統(tǒng)硬件安裝和軟件設(shè)計(jì)的情況下,在實(shí)驗(yàn)室搭建平臺(tái)驗(yàn)證整個(gè)系統(tǒng)的正確性、可靠性和穩(wěn)定性.采用10套主控板和無線收發(fā)器組成多個(gè)機(jī)聯(lián)網(wǎng)設(shè)備終端(圖9),用壓力測試方式測試設(shè)備終端和服務(wù)器的性能.
圖9 機(jī)聯(lián)網(wǎng)實(shí)驗(yàn)室驗(yàn)證平臺(tái)
在前端設(shè)備Android界面上, 通過接收設(shè)備數(shù)據(jù)顯示設(shè)備工作狀態(tài),給設(shè)備發(fā)送控制數(shù)據(jù),驗(yàn)證系統(tǒng)方案的可行性.Android數(shù)據(jù)驗(yàn)證界面如圖10所示.這里用3個(gè)測試用例,驗(yàn)證設(shè)備終端和服務(wù)器的功能及協(xié)議的完整性.
(1)通過網(wǎng)絡(luò)連接測試驗(yàn)證網(wǎng)絡(luò)通路和網(wǎng)絡(luò)結(jié)構(gòu)的可行性.結(jié)果表明,設(shè)備終端能夠正常連接路由器并登錄服務(wù)器,各個(gè)節(jié)點(diǎn)之間通信正常.
(2)通過功能測試驗(yàn)證系統(tǒng)的功能和通信協(xié)議.結(jié)果表明,非法設(shè)備終端接入服務(wù)器失敗,而合法設(shè)備能夠接入服務(wù)器進(jìn)行數(shù)據(jù)交互,上傳和下發(fā)數(shù)據(jù)均能夠正確處理,閉環(huán)協(xié)議得到正確驗(yàn)證.
(3)通過異常處理測試驗(yàn)證斷網(wǎng)和斷電的異常情況.結(jié)果表明,在網(wǎng)絡(luò)中斷的情況下,雙方能夠正確判斷狀態(tài)并且開始等待網(wǎng)絡(luò)正常連接的響應(yīng);在其中一方斷電的情況下,另一方能夠中斷服務(wù)并且開始詢問對(duì)方是否在線.
圖10 Android數(shù)據(jù)驗(yàn)證界面
本文提出了針織無縫內(nèi)衣機(jī)聯(lián)網(wǎng)生產(chǎn)的方案,研究了機(jī)聯(lián)網(wǎng)設(shè)備的功能需求,詳細(xì)闡述了無線模塊設(shè)計(jì)、終端的數(shù)據(jù)采集設(shè)計(jì)及通信協(xié)議的制定.在實(shí)驗(yàn)室對(duì)機(jī)聯(lián)網(wǎng)各個(gè)功能模塊進(jìn)行全方位的測試,驗(yàn)證了設(shè)計(jì)方案的合理性和系統(tǒng)的可行性.
[1] 程鈺杰.我國物聯(lián)網(wǎng)產(chǎn)業(yè)發(fā)展研究[D].合肥:安徽大學(xué),2012.
[2] 陳金燦.針織物聯(lián)網(wǎng)技術(shù)前景可期[J].紡織機(jī)械,2015(8):42-43.
[3] 龔成瑩,邢敬宏,胡銀保.基于JSON的Android移動(dòng)終端與PHP及MySQL數(shù)據(jù)通信[J].工業(yè)儀表與自動(dòng)化裝置,2013(1):63-65.
[4] 浦 煒,陳景波,周 平,等.基于ARM和Linux的圓緯機(jī)上位機(jī)軟件設(shè)計(jì)[J].針織工業(yè),2015(9):20-23.
[5] 王希朝,張 毅,程 鵬,等.面向物聯(lián)網(wǎng)應(yīng)用的UART-WIFI網(wǎng)關(guān)設(shè)計(jì)[J].微型機(jī)與應(yīng)用,2013,32(8):45-47.
[6] 楊 敏.Linux下針織緯編機(jī)通用人機(jī)交互系統(tǒng)設(shè)計(jì)[D].杭州:浙江理工大學(xué),2013.
[7] 張金輝,郭曉彪,符 鑫.AES加密算法分析及其在信息安全中的應(yīng)用[J].信息網(wǎng)絡(luò)安全,2011(5):31-33.
[8] 魏曉玲.MD5加密算法的研究及應(yīng)用[J].信息技術(shù),2010(7):145-147.