楊奉偉,劉燕卿,徐伯俊,謝春萍,蘇旭中
(江南大學(xué) 生態(tài)紡織教育部重點(diǎn)實(shí)驗(yàn)室,無錫 214122)
當(dāng)前紡織工業(yè)的發(fā)展已進(jìn)入新時(shí)代,面臨著由勞動(dòng)密集型產(chǎn)業(yè)向技術(shù)密集型產(chǎn)業(yè)轉(zhuǎn)型,借助于物聯(lián)網(wǎng)技術(shù)的發(fā)展,紡織行業(yè)信息化水平也不斷提高。物聯(lián)網(wǎng)技術(shù)通過將紡織設(shè)備與人相連,設(shè)備與設(shè)備相連,借助對(duì)應(yīng)的執(zhí)行系統(tǒng),對(duì)生產(chǎn)過程中數(shù)據(jù)進(jìn)行采集、傳輸與應(yīng)用,有利于加快紡織行業(yè)的數(shù)字化、智能化進(jìn)程[1]。
竹節(jié)紗是花式紗線的重要品種之一,即在單紗的長度方向上分布有粗細(xì)節(jié)狀態(tài),其產(chǎn)品應(yīng)用廣泛,如窗簾,牛仔布,裝飾用品等。竹節(jié)紗生產(chǎn)參數(shù)主要包括基紗號(hào)數(shù),竹節(jié)號(hào)數(shù),節(jié)距及節(jié)長等,影響竹節(jié)紗表面竹節(jié)分布及粗細(xì)分布[2,3]??紤]到竹節(jié)紗工藝參數(shù)設(shè)置的方面快捷,竹節(jié)長度,竹節(jié)倍率等重要工藝參數(shù)的快速設(shè)置及竹節(jié)紗生產(chǎn)設(shè)備的在線監(jiān)控,基于微信公眾品臺(tái),開發(fā)一種在線生產(chǎn)監(jiān)控系統(tǒng)以降低勞動(dòng)強(qiáng)度,提高生產(chǎn)效率。
將微信作為智能硬件的入口,第三方硬件廠商也可通過該平臺(tái)提供的接口與微信用戶交互[4]。相比于自主開發(fā)竹節(jié)紗智能控制系統(tǒng)終端,利用微信公眾品平臺(tái)開發(fā)該終端更加方便快捷,同時(shí)該平臺(tái)具有技術(shù)穩(wěn)定成熟,用戶群體龐大,開發(fā)成本低等優(yōu)點(diǎn),這也是自主開發(fā)所無法比擬的。因此本文利用微信公眾平臺(tái)、.NET語言、Internet網(wǎng)絡(luò)以及工業(yè)PLC開發(fā)了竹節(jié)紗智能控制系統(tǒng),該系統(tǒng)可遠(yuǎn)程控制生產(chǎn)機(jī)器的運(yùn)行狀態(tài)、修改及監(jiān)控生產(chǎn)工藝參數(shù)等功能。該系統(tǒng)設(shè)計(jì)成本低,且終端穩(wěn)定,用戶無需安裝第三方軟件即可遠(yuǎn)程控制生產(chǎn)設(shè)備。
該系統(tǒng)主要分為三部分,用戶應(yīng)用層、網(wǎng)絡(luò)層與控制層,如圖1所示,控制層由.Net平臺(tái)開發(fā)的竹節(jié)紗在線監(jiān)控系統(tǒng)的窗口應(yīng)用程序構(gòu)成,該程序通過將計(jì)算機(jī)與工業(yè)PLC進(jìn)行交互來獲取和傳輸相應(yīng)數(shù)據(jù),并將數(shù)據(jù)存儲(chǔ)到本地MYSQL數(shù)據(jù)庫中供用戶調(diào)用。工業(yè)PLC作為竹節(jié)紗生產(chǎn)設(shè)備的控制中樞存儲(chǔ)著大量生產(chǎn)數(shù)據(jù),包括機(jī)器運(yùn)行狀態(tài),竹節(jié)紗生產(chǎn)工藝參數(shù)如長度與倍率、生產(chǎn)批次、竹節(jié)紗模糊方式等重要數(shù)據(jù)[5]。利用.Net平臺(tái)開發(fā)竹節(jié)紗在線監(jiān)控系統(tǒng)的窗口應(yīng)用程序,該程序通過向PLC對(duì)應(yīng)地址中發(fā)送數(shù)據(jù)可修改生產(chǎn)工藝參數(shù)及機(jī)器運(yùn)行狀態(tài),并將監(jiān)控得到的數(shù)據(jù)上傳到本地?cái)?shù)據(jù)庫。
網(wǎng)絡(luò)層基于.Net平臺(tái)開發(fā)本地服務(wù)器作為搭建整個(gè)系統(tǒng)的中繼站,并利用NAT穿透技術(shù)將外網(wǎng)與本地計(jì)算機(jī)節(jié)點(diǎn)相連接,主要功能是將控制層與用戶應(yīng)用層互聯(lián)成網(wǎng)以訪問本地?cái)?shù)據(jù)庫,負(fù)責(zé)接受用戶的命令,并將命令轉(zhuǎn)發(fā)給控制層,并將控制層中相應(yīng)的數(shù)據(jù)傳輸給用戶,用戶可實(shí)時(shí)遠(yuǎn)程監(jiān)控生產(chǎn)設(shè)備的生產(chǎn)數(shù)據(jù)。
用戶應(yīng)用層作為系統(tǒng)終端,負(fù)責(zé)與用戶交互,利用微信公眾平臺(tái)用戶可在手機(jī)、平板或PC發(fā)送命令,從而實(shí)現(xiàn)如竹節(jié)紗工藝參數(shù)收發(fā)、機(jī)器運(yùn)行狀態(tài)查看、控制機(jī)器啟停等功能,同時(shí)作為服務(wù)于工廠實(shí)際生產(chǎn)的輔助控制系數(shù),以保證生產(chǎn)數(shù)據(jù)安全及機(jī)器運(yùn)行穩(wěn)定。
圖1 系統(tǒng)整體框架
在竹節(jié)紗生產(chǎn)設(shè)備中,PLC內(nèi)部存儲(chǔ)的數(shù)據(jù)可分為六類參數(shù),包括生產(chǎn)狀態(tài)監(jiān)控參數(shù)、參數(shù)設(shè)置、運(yùn)轉(zhuǎn)產(chǎn)量管理參數(shù)、機(jī)臺(tái)性能監(jiān)測(cè)參數(shù)、系統(tǒng)調(diào)試參數(shù)及報(bào)警信息參數(shù)。每個(gè)分類下面又分多個(gè)參數(shù),每個(gè)參數(shù)在PLC內(nèi)部都有一個(gè)唯一的地址,可通過讀取該地址寄存器的值來獲取對(duì)應(yīng)參數(shù)的當(dāng)前值,表1為主要參數(shù)分類及其詳細(xì)參數(shù)舉例。
Modbus協(xié)議是應(yīng)用于電子控制器上的一種通用語言。通過此協(xié)議PC設(shè)備按照對(duì)應(yīng)的通訊格式編寫數(shù)據(jù)即可實(shí)現(xiàn)與PLC的相互通信,該協(xié)議分為Modbus-RTU模式與Modbus-ASCII模式,本系統(tǒng)采用Modbus-RTU模式實(shí)現(xiàn)與PC端與PLC的交互,在.Net環(huán)境中按照對(duì)應(yīng)的信息格式編寫Modbus通信協(xié)議,利用串口進(jìn)行數(shù)據(jù)的傳遞。
表2為讀取前羅拉轉(zhuǎn)速時(shí)Modbus通訊信息,其中前羅拉的轉(zhuǎn)速值的存儲(chǔ)地址為HD500在PLC內(nèi)部的Modbus地址為A274H,此時(shí)讀出的為0200H,即表示前羅拉轉(zhuǎn)速為512r/min。按照此種方法,參考用戶手冊(cè)給出的Modbus地址即可獲取PLC內(nèi)部全部數(shù)據(jù)。
竹節(jié)紗設(shè)備的生產(chǎn)數(shù)據(jù)大部分存儲(chǔ)在PLC內(nèi)部數(shù)據(jù)寄存器(D、HD)及輔助繼電器(M、HM)中,其中數(shù)據(jù)寄存器中主要存儲(chǔ)各項(xiàng)生產(chǎn)參數(shù)及機(jī)器運(yùn)行參數(shù),輔助繼電器由PLC內(nèi)部軟元件的觸點(diǎn)驅(qū)動(dòng),存儲(chǔ)生產(chǎn)過程中機(jī)器的運(yùn)行狀態(tài),紗線種類等,只有打開與關(guān)閉兩種狀態(tài)[6]。無論寄存器還是繼電器都可通過Modbus通信協(xié)議讀取及修改PLC內(nèi)部對(duì)應(yīng)地址的數(shù)據(jù),表3為該系統(tǒng)生產(chǎn)監(jiān)控模塊主要參數(shù)地址及Modbus地址,此外還有其他多個(gè)模塊的參數(shù)地址,因篇幅限制,不在此列出。
系統(tǒng)本地應(yīng)用程序及用戶終端的Web頁面分別利用.NET下的WinForm與WebForm技術(shù)進(jìn)行開發(fā),在一般情況下Web界面是無法直接向WinForm應(yīng)用程序發(fā)送消息,本系統(tǒng)利用Web Service實(shí)現(xiàn)遠(yuǎn)程終端利用本地應(yīng)用程序中的MSComm控件讀取PLC內(nèi)部數(shù)據(jù),并將數(shù)據(jù)返回到Web界面,從而實(shí)現(xiàn)用戶終端與本地應(yīng)用的交互,進(jìn)而使終端用戶通過點(diǎn)擊Web界面即可直接獲取到PLC內(nèi)部數(shù)據(jù),無需經(jīng)過數(shù)據(jù)庫,減少了用戶訪問延遲,十分適合與讀取一些不需要存儲(chǔ)到數(shù)據(jù)庫,而又必須要監(jiān)控的數(shù)據(jù),如羅拉轉(zhuǎn)速,當(dāng)前紡紗長度等數(shù)據(jù)。圖2為Web Service服務(wù)在終端與本地程序中的作用。
表3 生產(chǎn)監(jiān)控模塊參數(shù)地址
圖2 Web Service服務(wù)作用圖
微信公眾平臺(tái)與服務(wù)器之間的交互流程可簡單概括為:用戶發(fā)送消息或單擊公眾號(hào)自定義菜單,服務(wù)器收到用戶請(qǐng)求,微信服務(wù)器根據(jù)業(yè)務(wù)邏輯回復(fù)給用戶對(duì)應(yīng)的消息,如視頻、文本、語音、地理位置等。這種工作流程與HTTP協(xié)議類似,即客戶端發(fā)送HTTP請(qǐng)求到服務(wù)器,如圖3所示,服務(wù)器端發(fā)送對(duì)應(yīng)HTTP響應(yīng)用戶請(qǐng)求[7,8]。本系統(tǒng)需要根據(jù)官方提供的接口來定制自己的公眾平臺(tái),因此在開發(fā)過程中其交互方式略有不同,如圖4所示,當(dāng)用戶在微信里給公眾號(hào)發(fā)送消息或者單擊微信自定義菜單時(shí),微信手機(jī)客戶端將這條消息發(fā)送到微信服務(wù)器。其次,微信服務(wù)器收到用戶的請(qǐng)求后,根據(jù)具體的業(yè)務(wù)邏輯再將消息推送給開發(fā)者設(shè)置的服務(wù)器地址(URL),這個(gè)服務(wù)器地址對(duì)于微信服務(wù)器來說就是一個(gè)服務(wù)器,微信服務(wù)器此時(shí)充當(dāng)?shù)氖强蛻舳说慕巧玔9]。開發(fā)者的服務(wù)器收到微信服務(wù)器推送過來的請(qǐng)求后,根據(jù)微信提供的規(guī)則解析出用戶發(fā)送的消息內(nèi)容,然后再根據(jù)具體的業(yè)務(wù)邏輯將響應(yīng)的內(nèi)容回復(fù)給微信服務(wù)器,微信服務(wù)器再返回給用戶。
圖3 http協(xié)議收發(fā)原理
圖4 本系統(tǒng)信息收發(fā)原理
一般微信公眾平臺(tái)其服務(wù)器對(duì)于用戶是透明的,關(guān)注此公眾號(hào)的用戶可以獲得微信后臺(tái)的全部數(shù)據(jù)[10]。但是作為服務(wù)于工廠實(shí)際生產(chǎn)的系統(tǒng),必須保證生產(chǎn)數(shù)據(jù)的安全性,并且針對(duì)不同的關(guān)注用戶需要具有不同的權(quán)限,因此需要針對(duì)不同的用戶進(jìn)行分類。本分類方式基于微信公眾平臺(tái)后臺(tái)的用戶數(shù)據(jù),每個(gè)關(guān)注公眾號(hào)的用戶在后臺(tái)都具有一個(gè)唯一的ID,將這個(gè)ID進(jìn)行分類后分別存儲(chǔ)在不同的數(shù)據(jù)表中,系統(tǒng)根據(jù)對(duì)應(yīng)數(shù)據(jù)表中的ID賦予用戶不同的權(quán)限,從而保證了數(shù)據(jù)安全性,如圖5所示。
圖5 用戶權(quán)限關(guān)系圖
對(duì)于已經(jīng)通過驗(yàn)證的新用戶,公眾號(hào)后臺(tái)會(huì)自動(dòng)識(shí)別用戶ID并回復(fù)對(duì)應(yīng)的信息,圖6為最高權(quán)限管理員所具有的權(quán)限及用戶回復(fù)1后得到的生產(chǎn)數(shù)據(jù)。新用戶通過回復(fù)對(duì)應(yīng)的字段即可查看對(duì)應(yīng)的數(shù)據(jù),如用戶回復(fù)1即可查看當(dāng)前設(shè)備的生產(chǎn)狀態(tài)參數(shù),回復(fù)6即可查看設(shè)備所有關(guān)鍵數(shù)據(jù),圖7為用戶回復(fù)1后對(duì)應(yīng)生產(chǎn)狀態(tài)監(jiān)控?cái)?shù)據(jù)表中的數(shù)據(jù),該公眾號(hào)回復(fù)的數(shù)據(jù)為當(dāng)前設(shè)備最新上傳的數(shù)據(jù)。
圖6 公眾平臺(tái)操作指南
根據(jù)公眾號(hào)自動(dòng)回復(fù)的操作指南來獲取數(shù)據(jù)對(duì)于新授權(quán)的用戶來說是個(gè)比較有效的解決辦法,但是對(duì)于老用戶或者是比較熟悉該公眾平臺(tái)的用戶來說,根據(jù)提示來操作就顯得有些繁瑣,因此用戶也可直接回復(fù)對(duì)應(yīng)的命令來直接獲取對(duì)應(yīng)的數(shù)據(jù)。
針對(duì)生產(chǎn)數(shù)據(jù)的分類不同,向用戶采取不同的呈現(xiàn)形式,如生產(chǎn)設(shè)備的錠速這一數(shù)據(jù)采用曲線的方式呈現(xiàn)給用戶,更加的簡單明了,如圖8所示,用戶可直接在回復(fù)錠速曲線來獲取當(dāng)前生產(chǎn)設(shè)備的錠速曲線的圖文消息,通過點(diǎn)擊該圖文消息,即可跳轉(zhuǎn)到錠速曲線界面,也可在線修改錠速曲線。
圖7 機(jī)器生產(chǎn)狀態(tài)數(shù)據(jù)表
圖8 錠速曲線
用戶也可通過在微信端回復(fù)竹節(jié)紗生產(chǎn)參數(shù)來查看及修改當(dāng)前設(shè)備竹節(jié)紗生產(chǎn)參數(shù),用戶通過點(diǎn)擊對(duì)應(yīng)的圖文消息跳轉(zhuǎn)到對(duì)應(yīng)的竹節(jié)紗生產(chǎn)參數(shù)界面,如圖9所示,用戶點(diǎn)擊確認(rèn)按鈕后新的竹節(jié)紗生產(chǎn)參數(shù)上傳到本地?cái)?shù)據(jù)庫,然后本地應(yīng)用程序讀取數(shù)據(jù)庫中的信息上傳到PLC中繼而實(shí)現(xiàn)生產(chǎn)參數(shù)的變化,圖10為監(jiān)測(cè)到的PLC內(nèi)部數(shù)據(jù)的變化,可以看到與用戶端修改數(shù)據(jù)是對(duì)應(yīng)的,說明生產(chǎn)參數(shù)修改成功。
圖9 竹節(jié)紗生產(chǎn)參數(shù)修改界面
通過對(duì)微信公眾平臺(tái)的二次開發(fā),將用戶的移動(dòng)終端與竹節(jié)紗生產(chǎn)設(shè)備相連,最終實(shí)現(xiàn)多用戶遠(yuǎn)程實(shí)時(shí)監(jiān)控竹節(jié)紗生產(chǎn)。由實(shí)驗(yàn)結(jié)果可知,用戶利用該系統(tǒng)可實(shí)現(xiàn)對(duì)竹節(jié)紗生產(chǎn)狀態(tài)的遠(yuǎn)程監(jiān)控、參數(shù)設(shè)置,遠(yuǎn)程調(diào)試機(jī)器等功能并且一線工人,維修人員,管理人員根據(jù)職責(zé)分工不同可通過該系統(tǒng)獲得相應(yīng)的數(shù)據(jù)及管理權(quán)限,無關(guān)人員即使關(guān)注了該公眾號(hào)也無法獲得生產(chǎn)數(shù)據(jù),保證了數(shù)據(jù)的安全性。
圖10 PLC內(nèi)部竹節(jié)紗生產(chǎn)參數(shù)變化對(duì)比圖
采用此種物聯(lián)網(wǎng)與微信公眾平臺(tái)相結(jié)合的開發(fā)模式,開發(fā)者無需開發(fā)其他APP即可實(shí)現(xiàn)將移動(dòng)終端與實(shí)際生產(chǎn)設(shè)備相連,實(shí)現(xiàn)用戶與機(jī)器的遠(yuǎn)程交互,提高了紡織機(jī)械的智能化程度,有利于提高紡織企業(yè)生產(chǎn)及管理效率,同時(shí)對(duì)紡織企業(yè)的智能化轉(zhuǎn)型也具有一定的借鑒價(jià)值。