董成龍,浦 煒
(常熟理工學(xué)院,江蘇 常熟215500)
目前常用的基于ARM和Linux的圓緯機電控系統(tǒng)[1]能夠基本滿足工業(yè)生產(chǎn)要求,但是在實際編織投產(chǎn)情況下更改編織改花型、生產(chǎn)數(shù)據(jù)查詢統(tǒng)計十分繁瑣,而集成了網(wǎng)絡(luò)功能的電控系統(tǒng)[4]仍無法解決遠(yuǎn)程批量參數(shù)配置、統(tǒng)計的問題。隨著我國“十四五”規(guī)劃的提出,對于創(chuàng)新驅(qū)動與現(xiàn)代產(chǎn)業(yè)體系的發(fā)展提出了更高的要求,因此設(shè)計一種高效、便利的生產(chǎn)管理系統(tǒng)具有重要意義[2]。
本文針對當(dāng)前控制系統(tǒng)所存在的問題提出了一種新型生產(chǎn)管理系統(tǒng)。采用電腦、手持設(shè)備和圓緯機組成的樹形結(jié)構(gòu),手持設(shè)備系統(tǒng)基于i.MX6平臺使用QT工具進(jìn)行編寫控制程序;圓緯機終端采用ARM+嵌入式Linux的方案;電腦端提供Web訪問。系統(tǒng)可支持大量圓緯機同時工作與遠(yuǎn)程配置,一定程度上提高了國產(chǎn)圓緯機的實用性,避免了不必要的人力投入,提高生產(chǎn)效率。
本生產(chǎn)管理系統(tǒng)采用了樹形結(jié)構(gòu)如圖1所示。電腦作為主機即樹形結(jié)構(gòu)的根結(jié)點;手持設(shè)備作為節(jié)點機即子樹的根結(jié)點;圓緯機作為終端機即葉結(jié)點。圓緯機電控系統(tǒng)通過射頻模塊進(jìn)行鑒權(quán),通過解析花型文件根據(jù)圓緯機工藝與參數(shù)控制生產(chǎn)工作,記錄生產(chǎn)數(shù)據(jù)到本機數(shù)據(jù)庫中,并實時監(jiān)控機器狀態(tài),發(fā)現(xiàn)異常時向上位機報警;圓緯機通過路由器連接到所屬的手持設(shè)備,手持設(shè)備對連接的圓緯機進(jìn)行數(shù)據(jù)統(tǒng)計和設(shè)備狀態(tài)監(jiān)控,并且可以進(jìn)行花型文件和機器參數(shù)的修改操作;電腦通過路由器對手持設(shè)備進(jìn)行數(shù)據(jù)統(tǒng)一整合,對所有設(shè)備進(jìn)行監(jiān)控和配置,并且可以建立網(wǎng)頁服務(wù)器實現(xiàn)遠(yuǎn)程管理。
圖1 圓緯機生產(chǎn)管理系統(tǒng)結(jié)構(gòu)示意圖
本生產(chǎn)管理系統(tǒng)的主要功能可以總結(jié)為以下幾點:
◆權(quán)限管理:圓緯機能夠通過射頻模塊識別用戶身份,員工登入、登出時進(jìn)行身份校驗,確認(rèn)用戶操作權(quán)限;
◆生產(chǎn)控制:圓緯機系統(tǒng)能夠根據(jù)需要對機器進(jìn)行測試,在工作時通過對花型文件、機器配置進(jìn)行解析,從而控制選針器或下位機進(jìn)行編織提花工作;
◆網(wǎng)絡(luò)通信:上位機能夠通過交換機自動識別并連接到各下位機,對連接的下位機進(jìn)行網(wǎng)絡(luò)參數(shù)配置,并且電腦端能夠建立服務(wù)器提供網(wǎng)頁服務(wù);
◆統(tǒng)計查詢:圓緯機將機器生產(chǎn)信息存入本機數(shù)據(jù)庫,上位機通過網(wǎng)絡(luò)獲取到下位機生產(chǎn)信息存入全局?jǐn)?shù)據(jù)庫并提供多平臺實時查詢功能以及可視化圖表生成;
◆機器配置:提供花型文件操作與機器參數(shù)配置功能,能夠?qū)A緯機的花型文件進(jìn)行上傳、更改、下載操作和機器參數(shù)的查詢、修改操作。
◆狀態(tài)監(jiān)控:對圓緯機系統(tǒng)各模塊狀態(tài)進(jìn)行監(jiān)控,通過與上位機的連接,實時反饋當(dāng)前狀態(tài);若出現(xiàn)異常狀態(tài)能夠及時進(jìn)行報警響應(yīng)。
根據(jù)軟件的功能和要求,對生產(chǎn)管理系統(tǒng)的功能模塊進(jìn)行劃分,如圖1、2所示。
圖2 系統(tǒng)功能模塊劃分
軟件采用了多線程編寫[5-6]以確保軟件的實時性和操作的快速響應(yīng)性。圓緯機終端負(fù)責(zé)權(quán)限管理與生產(chǎn)控制,在圓緯機上電啟動時進(jìn)行用戶登錄,創(chuàng)建啟動狀態(tài)監(jiān)控模塊實時監(jiān)控機器工作狀態(tài),對異常狀態(tài)進(jìn)行上報;設(shè)置網(wǎng)絡(luò)通信模塊向上位機上傳本機數(shù)據(jù)庫數(shù)據(jù)以及機器狀態(tài),并解析上位機下發(fā)的指令與參數(shù)進(jìn)行相關(guān)配置。
手持設(shè)備的主線程負(fù)責(zé)網(wǎng)絡(luò)通信模塊,狀態(tài)監(jiān)控模塊實時顯示當(dāng)前在線的圓緯機狀態(tài),機器設(shè)置模塊將需要修改的花型文件與參數(shù)下發(fā)到選定圓緯機;數(shù)據(jù)處理模塊通過處理圓緯機上傳的數(shù)據(jù)存入數(shù)據(jù)庫,提供查詢與可視化統(tǒng)計圖表,并且允許用戶進(jìn)行數(shù)據(jù)庫維護(hù)操作。
電腦端生產(chǎn)管理系統(tǒng)通過web頁提供查詢、統(tǒng)計功能,提供與手持終端的網(wǎng)絡(luò)通訊。
系統(tǒng)中核心模塊主要由樹形結(jié)構(gòu)中各系統(tǒng)的四個模塊組成,模塊之間充分利用了QT編程中信號收發(fā)和槽函數(shù)的調(diào)用從而實現(xiàn)對各線程的數(shù)據(jù)傳送和動作控制[5]。
1) 生產(chǎn)控制模塊
本模塊集成于圓緯機系統(tǒng)中,其主要的控制流程是循環(huán)獲取針筒每圈每個針位各選針器的動作數(shù)據(jù)并填充至緩沖區(qū),然后根據(jù)針位信息和緩沖區(qū)數(shù)據(jù)來驅(qū)動選針器動作[3]。
2) 狀態(tài)監(jiān)控模塊
圓緯機系統(tǒng)狀態(tài)監(jiān)控模塊在上電時啟動,通過輪詢方式監(jiān)控其余各模塊狀態(tài),根據(jù)返回值判斷機器各模塊當(dāng)前狀態(tài),若出現(xiàn)異常狀態(tài)則及時通過網(wǎng)絡(luò)通信模塊向上位機上報并且保存到本地,根據(jù)不同的報警信息,狀態(tài)監(jiān)控模塊將通過發(fā)射信號調(diào)用異常模塊中的相關(guān)異常處理函數(shù)進(jìn)行處理。上位機系統(tǒng)中的狀態(tài)監(jiān)控模塊同樣將對下位機中網(wǎng)絡(luò)通信模塊進(jìn)行輪詢,通過局域網(wǎng)獲取到圓緯機當(dāng)前工作狀態(tài)實時進(jìn)行顯示,若圓緯機出現(xiàn)異常狀態(tài)則及時向用戶進(jìn)行報警。狀態(tài)監(jiān)控模塊流程如圖3。
圖3 狀態(tài)監(jiān)控模塊流程圖
3) 網(wǎng)絡(luò)通信模塊
網(wǎng)絡(luò)通信模塊自設(shè)備上電時啟動,連接交換機后通過DHCP服務(wù)自動分配IP,本系統(tǒng)的設(shè)備之間采用基于TCP/IP通信協(xié)議的C/S模型,在通信過程中上位機作為C/S模型中的Client,下位機作為Server。利用QTNetwork模塊提供的QTcpSocket類和QTcpServer類[7]等,上位機可以通過不同的IP地址和端口建立多個Socket分別與多個下位機相連,每個Socket實現(xiàn)與下位機之間的參數(shù)配置、狀態(tài)監(jiān)控、數(shù)據(jù)查詢工作。電腦端系統(tǒng)中可以建立web網(wǎng)頁服務(wù)器,通過CGI和HTML協(xié)作方式實現(xiàn)非工作區(qū)域訪問網(wǎng)頁進(jìn)行對系統(tǒng)的操作。
4) 數(shù)據(jù)處理模塊
數(shù)據(jù)處理模塊主要利用QT+SQL模塊廣泛的數(shù)據(jù)庫支持能力進(jìn)行設(shè)計[8],圓緯機系統(tǒng)中由于單機生產(chǎn)數(shù)據(jù)處理量較小,對于數(shù)據(jù)庫的并發(fā)要求較低,故圓緯機系統(tǒng)數(shù)據(jù)處理模塊采用嵌入式數(shù)據(jù)庫SQLite,數(shù)據(jù)處理模塊獲取當(dāng)前生產(chǎn)信息與已有數(shù)據(jù)進(jìn)行比對并對機器數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行更新,當(dāng)系統(tǒng)出現(xiàn)異常時也能夠及時進(jìn)行數(shù)據(jù)的備份并斷開與數(shù)據(jù)庫的鏈接;上位機系統(tǒng)中由于需要統(tǒng)計下位機中數(shù)據(jù),并且需要提供高效的數(shù)據(jù)查詢操作,故采用MySQL數(shù)據(jù)庫,數(shù)據(jù)處理模塊通過網(wǎng)絡(luò)通信模塊定時或手動更新方式獲取下位機機器數(shù)據(jù)庫進(jìn)行統(tǒng)計,并且允許用戶對機器數(shù)據(jù)庫進(jìn)行維護(hù)操作例如計劃定期或定量對數(shù)據(jù)庫進(jìn)行備份操作。
在進(jìn)行查詢操作時數(shù)據(jù)處理模塊能夠通過查詢員工、花型等屬性,利用QTCharts模塊[9]對查詢得到的結(jié)果生成可視化統(tǒng)計圖表。
輔助模塊在樹形結(jié)構(gòu)的各系統(tǒng)中起到輔助核心模塊工作的作用,并向系統(tǒng)用戶提供一個良好的用戶接口。
1) 權(quán)限管理模塊
圓緯機系統(tǒng)權(quán)限管理模塊通過串口連接射頻讀寫器,通過系統(tǒng)內(nèi)置的密鑰對員工卡進(jìn)行讀寫,訪問用戶信息數(shù)據(jù)庫確認(rèn)員工身份信息;員工與管理員身份具有不同的模塊訪問權(quán)限。上位機系統(tǒng)通過賬號密碼訪問用戶信息數(shù)據(jù)庫進(jìn)行鑒權(quán)進(jìn)入系統(tǒng)。本模塊主要通過QT的QSerialPort類、QSerialPortInfo類等實現(xiàn)[10]。
2) 機器設(shè)置模塊
圓緯機系統(tǒng)機器設(shè)置模塊通過網(wǎng)絡(luò)通信模塊接收上位機修改機器參數(shù)指令,對機器運轉(zhuǎn)速度、當(dāng)前花型等參數(shù)進(jìn)行配置,同樣允許管理員使用射頻卡進(jìn)入系統(tǒng)對圓緯機進(jìn)行單獨配置;上位機系統(tǒng)機器設(shè)置模塊允許管理員通過局域網(wǎng)對圓緯機進(jìn)行相關(guān)參數(shù)設(shè)置以及花型文件的修改更新。本模塊主要借助QT的QSqlQuery類、QSqlDatabase類、QDir類、QFileInfo類等實現(xiàn)[6-7]。
基于物聯(lián)網(wǎng)的圓緯機生產(chǎn)管理系統(tǒng)運行時由圓緯機、手持設(shè)備、電腦端三部分系統(tǒng)組成。圓緯機系統(tǒng)由使用者使用射頻卡進(jìn)入系統(tǒng)主界面,主界面由生產(chǎn)控制與數(shù)據(jù)處理模塊構(gòu)成,通過按鈕進(jìn)入網(wǎng)絡(luò)通信、機器設(shè)置和狀態(tài)監(jiān)控模塊。手持設(shè)備與電腦端通過輸入操作密碼進(jìn)入系統(tǒng),主界面由狀態(tài)監(jiān)控和數(shù)據(jù)處理模塊構(gòu)成,通過按鈕進(jìn)入網(wǎng)絡(luò)通信、數(shù)據(jù)查詢和權(quán)限管理模塊。部分運行界面如圖4,圖5所示。
圖4 手持終端生產(chǎn)管理系統(tǒng)統(tǒng)計查詢界面
圖5 web方式訪問管理界面
在圓緯機電控系統(tǒng)的更新迭代過程中,網(wǎng)絡(luò)化、模塊化是一個大的趨勢。本系統(tǒng)通過利用ARM強大的處理能力以及Linux系統(tǒng)和QT工具提供的可移植性和開發(fā)便捷性,在為用戶提供良好的人機交互性的同時也為后續(xù)程序的維護(hù)、更新提供了便利。該系統(tǒng)利用雙緩沖區(qū)以及多線程的技術(shù)確保了生產(chǎn)過程中的實時性;利用QT工具信號與槽的特性實現(xiàn)模塊工作狀態(tài)的監(jiān)控確保了系統(tǒng)的穩(wěn)定性;系統(tǒng)上、下位機之間通過網(wǎng)絡(luò)模塊進(jìn)行通信很好地解決了生產(chǎn)過程中對于大量設(shè)備同時工作時的管理不便問題。