張貴軍,陳 凱,徐建明,禹鑫燚
(浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310023)
MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)設(shè)計(jì)與開發(fā)
張貴軍,陳 凱,徐建明,禹鑫燚
(浙江工業(yè)大學(xué) 信息工程學(xué)院,浙江 杭州 310023)
針對(duì)離散制造業(yè)各系統(tǒng)之間相互獨(dú)立、缺乏數(shù)據(jù)共享,而導(dǎo)致功能重疊等信息孤島問題,基于面向制造企業(yè)車間執(zhí)行層的生產(chǎn)信息化管理制造執(zhí)行系統(tǒng)(MES),設(shè)計(jì)開發(fā)了MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng).使用OPC Server實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備狀態(tài)的實(shí)時(shí)采集,通過Socket實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)交換,采用WebSocket即時(shí)通信技術(shù)實(shí)現(xiàn)服務(wù)器與瀏覽器之間數(shù)據(jù)的實(shí)時(shí)推送.設(shè)計(jì)一種可靠的通信協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)數(shù)據(jù)的可靠傳輸,有效解決了上層計(jì)劃系統(tǒng)與下層控制系統(tǒng)之間的通信問題,用戶可以通過PC瀏覽器遠(yuǎn)程監(jiān)測(cè)現(xiàn)場(chǎng)設(shè)備的工作狀態(tài).MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)開發(fā)成本低、運(yùn)行穩(wěn)定且維護(hù)簡(jiǎn)便,可以替代傳統(tǒng)崗位式監(jiān)測(cè)方式,具有較高的研究和市場(chǎng)應(yīng)用價(jià)值.
MES系統(tǒng);監(jiān)測(cè)系統(tǒng);實(shí)時(shí)數(shù)據(jù)采集
隨著科學(xué)技術(shù)的發(fā)展,傳統(tǒng)工廠的生產(chǎn)加工模式已不再適合高速發(fā)展的信息化時(shí)代,制造業(yè)面臨著巨大的壓力.目前,由于制造業(yè)各系統(tǒng)之間相互獨(dú)立、缺乏數(shù)據(jù)共享而導(dǎo)致功能重疊等一系列信息孤島問題,阻斷了制造信息在工廠水平方向的傳遞,嚴(yán)重地制約工廠各系統(tǒng)之間的協(xié)調(diào),降低制造業(yè)系統(tǒng)的發(fā)展水平,阻礙制造業(yè)信息化和工業(yè)化的進(jìn)程[1].2013年4月在漢諾威工業(yè)博覽會(huì)上,德國(guó)政府提出“工業(yè)4.0”戰(zhàn)略,目的是提高德國(guó)工業(yè)的競(jìng)爭(zhēng)力,在新一輪工業(yè)革命中占領(lǐng)先機(jī).經(jīng)李克強(qiáng)總理簽批,中國(guó)版的“工業(yè)4.0”規(guī)劃《中國(guó)制造2025》由國(guó)務(wù)院于2015年5月8日公布,在2015年10月十八屆五中全會(huì)通過“十三五”規(guī)劃后,成為最熱門的焦點(diǎn)之一[2].1990年美國(guó)先進(jìn)制造研究公司(AMR)首次提出的制造執(zhí)行系統(tǒng)(MES)是面向制造企業(yè)車間執(zhí)行層的生產(chǎn)信息化管理系統(tǒng),處于底層工業(yè)控制系統(tǒng)與上層計(jì)劃管理系統(tǒng)之間,有效地解決了上層計(jì)劃系統(tǒng)與下層控制系統(tǒng)之間的信息通信,將生產(chǎn)與管理有機(jī)地結(jié)合起來,對(duì)工廠制造業(yè)整體水平的提升具有重要意義[3-4].在歐美發(fā)達(dá)國(guó)家,研究人員和企業(yè)管理者對(duì)MES進(jìn)行大量研究,不僅在理論研究上取得顯著的成就,而且在應(yīng)用上也走在世界前列[5-7].國(guó)內(nèi)對(duì)MES的理論研究起步比較晚,研究深度和廣度也落后于歐美西方國(guó)家,在企業(yè)中的應(yīng)用也剛剛起步,主要停留在MES體系架構(gòu)、內(nèi)涵以及思想的研究上,應(yīng)用系統(tǒng)的開發(fā)局限于MES單一功能[8-10].
針對(duì)某企業(yè)模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng),應(yīng)用以太網(wǎng)、無線網(wǎng)為數(shù)據(jù)傳輸通道,瀏覽器為客戶端,開發(fā)基于OPC Server的數(shù)據(jù)采集終端,實(shí)現(xiàn)基于Socket和WebSocket的實(shí)時(shí)數(shù)據(jù)的傳輸和展示,最終實(shí)現(xiàn)基于Web的MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與開發(fā).
MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)基于B/S架構(gòu),采用OPC技術(shù),實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備過程狀態(tài)數(shù)據(jù)的實(shí)時(shí)采集;采用Socket技術(shù),實(shí)現(xiàn)異構(gòu)環(huán)境下數(shù)據(jù)采集終端和Web服務(wù)器之間的數(shù)據(jù)通信;采用WebSocket技術(shù),實(shí)現(xiàn)Web服務(wù)器與瀏覽器之間數(shù)據(jù)的即時(shí)通信.系統(tǒng)主要包括需求分析、系統(tǒng)架構(gòu)設(shè)計(jì)以及功能設(shè)計(jì)與實(shí)現(xiàn)三部分,功能設(shè)計(jì)主要包括數(shù)據(jù)采集終端、Web服務(wù)器和通信協(xié)議三大模塊.
1.1 需求分析
MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)基于模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng),通過對(duì)現(xiàn)場(chǎng)設(shè)備的過程狀態(tài)數(shù)據(jù)的實(shí)時(shí)采集、傳輸、處理、顯示,實(shí)現(xiàn)對(duì)該模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng)運(yùn)行過程的智能監(jiān)測(cè).模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng)工作流程如圖1所示,主要由上料、串聯(lián)機(jī)器人示教搬運(yùn)、液壓沖壓、并聯(lián)機(jī)器人加工、圖像檢測(cè)搬運(yùn)、落料、噴涂烘干、圖像處理、加蓋、穿銷、檢測(cè)、條形碼自動(dòng)黏貼與掃描、分揀輸送、提升機(jī)械手、物流倉儲(chǔ)、堆垛解垛及行車機(jī)械手等單元組成.
圖1 模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng)流程圖Fig.1 Flow chart of integrated training system for modular flexible manufacturing
針對(duì)該實(shí)訓(xùn)系統(tǒng)工作流程,實(shí)現(xiàn)對(duì)互聯(lián)網(wǎng)內(nèi)實(shí)訓(xùn)系統(tǒng)工作流程和工作狀態(tài)的多用戶實(shí)時(shí)監(jiān)測(cè).監(jiān)測(cè)內(nèi)容包括聯(lián)機(jī)狀態(tài)監(jiān)測(cè)和單機(jī)狀態(tài)監(jiān)測(cè),單機(jī)狀態(tài)監(jiān)測(cè)設(shè)備運(yùn)行狀態(tài)、工件運(yùn)行模擬動(dòng)畫等;聯(lián)機(jī)狀態(tài)監(jiān)測(cè)設(shè)備運(yùn)行狀態(tài)、工件運(yùn)行位置、報(bào)警及工件運(yùn)行模擬動(dòng)畫等.
1.2 系統(tǒng)架構(gòu)
MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)包括三層架構(gòu),如圖2所示.三層架構(gòu)由數(shù)據(jù)采集層、Web服務(wù)器層以及客戶端層組成,數(shù)據(jù)采集層包括過程控制層(PCS)和基于C++語言的OPC客戶端的設(shè)計(jì)與開發(fā);Web服務(wù)器層包括MES系統(tǒng)實(shí)時(shí)數(shù)據(jù)的獲取、手工采集數(shù)據(jù)、管理數(shù)據(jù)以及歷史數(shù)據(jù)等數(shù)據(jù)倉庫的搭建和發(fā)布;客戶端層包括數(shù)據(jù)的獲取和顯示.數(shù)據(jù)采集層與過程控制層以SIMATIC NET作為OPC Server連接現(xiàn)場(chǎng)設(shè)備的媒介,通過OPC客戶端采集現(xiàn)場(chǎng)設(shè)備運(yùn)行的過程數(shù)據(jù);Web服務(wù)器層通過Socket技術(shù)實(shí)現(xiàn)與數(shù)據(jù)采集層之間數(shù)據(jù)的實(shí)時(shí)通信;客戶端層通過WebSocket技術(shù)實(shí)現(xiàn)與Web服務(wù)器層之間數(shù)據(jù)的即時(shí)通信.
傳統(tǒng)的現(xiàn)場(chǎng)設(shè)備實(shí)時(shí)數(shù)據(jù)采集方案,每個(gè)應(yīng)用軟件開發(fā)商都需要提供專用的接口函數(shù)來存取現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)信息.由于設(shè)備種類多種多樣,產(chǎn)品經(jīng)常升級(jí),往往給用戶和開發(fā)商帶來巨大的工作負(fù)擔(dān),不符合工作的實(shí)際需求.
圖2 MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)架構(gòu)圖Fig.2 Structure diagram of MES real-time data monitoring system
2.1 OPC技術(shù)
OPC技術(shù)是以O(shè)LE、組件對(duì)象模型COM、分布式組件對(duì)象模型DCOM以及ActiveX技術(shù)為基礎(chǔ),用于過程控制的OLE技術(shù)[11].OPC通過提供一套標(biāo)準(zhǔn)的OLE/COM接口,完成從服務(wù)器數(shù)據(jù)源提取數(shù)據(jù)并傳輸?shù)娇蛻舳?,是一種具有高效性、開放性、可靠性和可互操作性的即插即用的設(shè)備驅(qū)動(dòng)程序[12].
OPC服務(wù)器主要由OPC服務(wù)器對(duì)象(Server)、OPC組對(duì)象(Group)以及OPC項(xiàng)對(duì)象(Item)三類邏輯對(duì)象模型組成.Server對(duì)象是Group對(duì)象的容器,Group對(duì)象是Item對(duì)象的容器,Item對(duì)象是OPC服務(wù)器到數(shù)據(jù)源的一個(gè)物理連接,通過Server,Group,Item三層接口,連接到OPC Server的硬件裝置.其關(guān)系圖如圖3所示.
圖3 OPC服務(wù)器對(duì)象關(guān)系Fig.3 Relationship of OPC server object
2.2 客戶端設(shè)計(jì)與開發(fā)
數(shù)據(jù)采集終端以O(shè)PC Server為基礎(chǔ),通過Server, Group, Item三層接口與現(xiàn)場(chǎng)設(shè)備的端口通道建立連接,OPC Server和OPC Group通過OPC Item與現(xiàn)場(chǎng)設(shè)備的I/O進(jìn)行數(shù)據(jù)交換,提取現(xiàn)場(chǎng)設(shè)備的數(shù)據(jù)信息.數(shù)據(jù)存儲(chǔ)接口用于數(shù)據(jù)入庫,對(duì)數(shù)據(jù)進(jìn)行備份以及歷史分析.數(shù)據(jù)通信接口通過Socket實(shí)現(xiàn)實(shí)時(shí)數(shù)據(jù)跨平臺(tái)數(shù)據(jù)交互.系統(tǒng)架構(gòu)如圖4所示.
圖4 數(shù)據(jù)采集終端結(jié)構(gòu)圖Fig.4 Structure diagram of data acquisition terminal
OPC服務(wù)器組對(duì)象的工作方式有冷連接和熱連接兩種方式.對(duì)于溫度、流量和速度等變化周期相對(duì)固定的信號(hào),采用冷連接的工作方式,設(shè)置合理的采樣周期對(duì)現(xiàn)場(chǎng)設(shè)備實(shí)時(shí)數(shù)據(jù)進(jìn)行采集.對(duì)于報(bào)警、控制命令等變化周期不固定的信號(hào)和事件觸發(fā)信號(hào),采用熱連接的工作方式,及時(shí)獲取現(xiàn)場(chǎng)設(shè)備的實(shí)時(shí)數(shù)據(jù).根據(jù)服務(wù)器對(duì)象的工作方式將現(xiàn)場(chǎng)設(shè)備的547路數(shù)據(jù)分為冷連接和熱連接兩種讀取數(shù)據(jù)的模式,其中冷連接423路,熱連接124路.表1為冷連接方式讀取數(shù)據(jù)的部分設(shè)備數(shù)據(jù)地址,表2為熱連接方式讀取數(shù)據(jù)的部分設(shè)備數(shù)據(jù)地址.
表1 冷連接方式讀取部分?jǐn)?shù)據(jù)地址
表2 熱連接方式讀取部分?jǐn)?shù)據(jù)地址
Web服務(wù)器的設(shè)計(jì)與開發(fā)是基于B/S架構(gòu)的監(jiān)測(cè)系統(tǒng)的核心內(nèi)容,主要包括監(jiān)測(cè)客戶端、實(shí)時(shí)數(shù)據(jù)通信及數(shù)據(jù)庫存儲(chǔ)等模塊的設(shè)計(jì)與開發(fā).
3.1 Socket技術(shù)
TCP/IP協(xié)議是Internet最基本的協(xié)議,主要由網(wǎng)絡(luò)層IP協(xié)議和傳輸層TCP協(xié)議構(gòu)成.Socket又稱“套接字”,用于描述IP地址和端口,是一個(gè)通信鏈的句柄,用來實(shí)現(xiàn)不同虛擬機(jī)或不同計(jì)算機(jī)之間的通信[13].TCP/IP是一種可靠的網(wǎng)絡(luò)通信協(xié)議,通過在通信兩端各自創(chuàng)建一個(gè)套接字(Socket),形成可靠地的網(wǎng)絡(luò)虛擬鏈路,從而兩端程序通過網(wǎng)絡(luò)虛擬鏈路進(jìn)行通訊[14].
在客戶端/服務(wù)器通信模式中,Socket是通信連接兩端的收發(fā)器,服務(wù)器和客戶端都通過Socket來收發(fā)數(shù)據(jù).客戶端需要主動(dòng)創(chuàng)建與服務(wù)器連接的Socket,服務(wù)器端收到客戶端的連接請(qǐng)求,創(chuàng)建與客戶端連接的Socket.
Socket連接過程分為三個(gè)步驟,包括服務(wù)器監(jiān)聽、客戶端請(qǐng)求及連接確認(rèn),如圖5所示.服務(wù)器端套接字一直處于等待連接的狀態(tài),實(shí)時(shí)監(jiān)測(cè)網(wǎng)絡(luò)中的Socket連接,并不定位特定的客戶端.當(dāng)客戶端套接字發(fā)起連接請(qǐng)求且連接目標(biāo)與服務(wù)器端的套接字相匹配時(shí),服務(wù)器端套接字監(jiān)聽到客戶端的連接請(qǐng)求并響應(yīng)客戶端套接字的請(qǐng)求,同時(shí)通過創(chuàng)建新線程把服務(wù)器端的套接字的描述發(fā)送給客戶端.如果客戶端確認(rèn)收到的套接字,則創(chuàng)建與服務(wù)器端進(jìn)行數(shù)據(jù)實(shí)時(shí)通信的Socket連接.而服務(wù)器端的套接字繼續(xù)處于監(jiān)聽狀態(tài),繼續(xù)接收其他客戶端套接字的連接請(qǐng)求.
3.2 WebSocket技術(shù)
WebSocket協(xié)議是一個(gè)網(wǎng)絡(luò)協(xié)議,允許兩個(gè)相連的端在一個(gè)單一的TCP連接上進(jìn)行全雙工消息通信.WebSocket協(xié)議基于TCP的協(xié)議,與TCP連接的建立過程類似,但與傳統(tǒng)的基于TCP連接的協(xié)議有所不同的是WebSocket協(xié)議的握手過程需要從HTTP協(xié)議發(fā)起連接[15].連接的發(fā)起者發(fā)送一個(gè)專門制定的HTTP請(qǐng)求,其中包含連接的WebSocket端點(diǎn)的URL,稱為打開階段握手.如果服務(wù)器接受連接,制定一個(gè)稱為打開階段握手響應(yīng)的特殊的HTTP響應(yīng)并發(fā)送回客戶端.此時(shí),保證WebSocket消息的往返傳遞TCP連接創(chuàng)建,一直保持活躍直到任意一方?jīng)Q定終止連接,或者是某些外部因素導(dǎo)致連接關(guān)閉[16].圖6為WebSocket 協(xié)議握手過程的示意圖.
圖5 Socket通信模式Fig.5 Socket communication mode
圖6 WebSocket實(shí)時(shí)通信圖Fig.6 Structure diagram of WebSocket real-time communication
首先,瀏覽器客戶端向服務(wù)器發(fā)起WebSocket握手請(qǐng)求,并發(fā)送基于HTTP協(xié)議的請(qǐng)求報(bào)文.然后,服務(wù)器收到客戶端的WebSocket發(fā)送的握手請(qǐng)求報(bào)文并對(duì)握手請(qǐng)求報(bào)文進(jìn)行解析,如果握手請(qǐng)求報(bào)文滿足WebSocket協(xié)議條件,則向客戶端發(fā)送WebSocket握手應(yīng)答,并發(fā)送基于HTTP的應(yīng)答報(bào)文.最后,客戶端收到服務(wù)器端的WebSocket應(yīng)答報(bào)文并對(duì)應(yīng)答報(bào)文進(jìn)行解析驗(yàn)證,如果驗(yàn)證成功,則創(chuàng)建WebSocket連接,雙方建立全雙工通信,否則客戶端主動(dòng)斷開連接.
3.3 Web服務(wù)器端
WebSocket服務(wù)器端主要包括實(shí)時(shí)數(shù)據(jù)獲取模塊、數(shù)據(jù)倉庫模塊和實(shí)時(shí)數(shù)據(jù)推送模塊三部分.實(shí)時(shí)數(shù)據(jù)獲取模塊基于Socket實(shí)時(shí)通信技術(shù),實(shí)現(xiàn)WebSocket服務(wù)器與數(shù)據(jù)采集終端的數(shù)據(jù)交換,為保證數(shù)據(jù)的唯一性和一致性,提高多用戶并發(fā)訪問效率,只創(chuàng)建唯一的Socket連接.數(shù)據(jù)倉庫模塊由手工采集數(shù)據(jù)、MES系統(tǒng)實(shí)時(shí)數(shù)據(jù)、管理數(shù)據(jù)以及歷史數(shù)據(jù)組建而成,是基于B/S架構(gòu)監(jiān)測(cè)系統(tǒng)的數(shù)據(jù)來源.實(shí)時(shí)數(shù)據(jù)推送模塊基于WebSocket即時(shí)通信技術(shù),實(shí)現(xiàn)瀏覽器客戶端與WebSocket服務(wù)器之間的通信,采用廣播傳送方式通信,WebSocket服務(wù)器向所有客戶端發(fā)送同一份數(shù)據(jù)包,客戶端篩選對(duì)應(yīng)的數(shù)據(jù),保證實(shí)時(shí)監(jiān)測(cè)客戶端數(shù)據(jù)的唯一性和一致性.
數(shù)據(jù)推送結(jié)構(gòu)圖如圖7所示.首先,瀏覽器客戶端向WebSocket服務(wù)器發(fā)起連接請(qǐng)求,連接成功后創(chuàng)建WebSocket服務(wù)器與客戶端實(shí)時(shí)數(shù)據(jù)傳輸通道.然后,WebSocket服務(wù)器通過數(shù)據(jù)庫通信接口從數(shù)據(jù)庫中提取手工采集的數(shù)據(jù)、管理數(shù)據(jù)和歷史數(shù)據(jù),通過數(shù)據(jù)通信接口獲取MES系統(tǒng)實(shí)時(shí)數(shù)據(jù).最后,WebSocket服務(wù)器通過實(shí)時(shí)數(shù)據(jù)傳輸通道將實(shí)時(shí)數(shù)據(jù)推送到瀏覽器客戶端.
圖7 基于廣播式數(shù)據(jù)推送結(jié)構(gòu)圖Fig.7 Structure diagram of data push based on broadcast
網(wǎng)絡(luò)通信協(xié)議三要素包括語法、語義及時(shí)序.語法規(guī)定信息的格式;語義規(guī)定通信雙方怎么去做;時(shí)序規(guī)定事件的先后順序.傳輸?shù)臄?shù)據(jù)流以包的形式進(jìn)行傳輸,包括發(fā)送方的請(qǐng)求包、普通數(shù)據(jù)包、結(jié)束包及接收方發(fā)出的響應(yīng)數(shù)據(jù)包.
請(qǐng)求包是發(fā)送方發(fā)給接收方的協(xié)議包,并用于向接收方發(fā)出發(fā)送文件的請(qǐng)求.ENQ表示請(qǐng)求包的包標(biāo)識(shí),占用1個(gè)字節(jié),值為5.Size表示傳送文件的長(zhǎng)度,占用4個(gè)字節(jié).NameLength表示文件名的長(zhǎng)度,占用1個(gè)字節(jié).Name表示傳送文件的名稱,占用長(zhǎng)度有文件名長(zhǎng)度字節(jié)內(nèi)容決定.校驗(yàn)占用1個(gè)字節(jié),是從ENQ開始到校驗(yàn)前所有字節(jié)的異或運(yùn)算和.
普通數(shù)據(jù)包是發(fā)送方向接收方發(fā)送具有固定長(zhǎng)度的數(shù)據(jù)包,固定位1 028字節(jié)長(zhǎng)度.STX是普通數(shù)據(jù)包的包標(biāo)識(shí),占用1個(gè)字節(jié),值為2.Number用于標(biāo)識(shí)當(dāng)前數(shù)據(jù)包在整個(gè)傳輸過程中的順序號(hào),占用2個(gè)字節(jié).Data為傳輸?shù)木唧w內(nèi)容,占用1 024個(gè)字節(jié).校驗(yàn)占用1個(gè)字節(jié),是從STX開始到校驗(yàn)前所有字節(jié)的異或運(yùn)算和.
結(jié)束包是發(fā)送方向接收方發(fā)送的最后一個(gè)數(shù)據(jù)包,長(zhǎng)度不固定.ETX是結(jié)束包的包標(biāo)識(shí),占用1個(gè)字節(jié),值為3.Length表示數(shù)據(jù)包傳送數(shù)據(jù)的長(zhǎng)度,占用2個(gè)字節(jié).Data表示傳送的具體數(shù)據(jù)內(nèi)容,長(zhǎng)度由數(shù)據(jù)長(zhǎng)度的值決定.校驗(yàn)占用1個(gè)字節(jié),是從ETX開始到校驗(yàn)前所有字節(jié)的異或運(yùn)算和.
響應(yīng)包是接收方發(fā)給發(fā)送方的應(yīng)答信息,占用1個(gè)字節(jié),有效的取值如表3所示.
表3 響應(yīng)包取值及其含義
通信過程分為發(fā)送請(qǐng)求和發(fā)送文件兩個(gè)過程.發(fā)送方發(fā)送請(qǐng)求包,等待應(yīng)答方響應(yīng).若發(fā)送方收到應(yīng)答方的ACK響應(yīng),發(fā)送普通數(shù)據(jù)包;若收到應(yīng)答方的NAK響應(yīng),重發(fā)請(qǐng)求包;若收到應(yīng)答方的CAN響應(yīng),則取消本次發(fā)送請(qǐng)求.發(fā)送方將待發(fā)送的文件以1 024字節(jié)為單位拆分為N個(gè)數(shù)據(jù)片段,最后一個(gè)數(shù)據(jù)片段長(zhǎng)度不定,小于或等于1 024字節(jié).當(dāng)發(fā)送數(shù)據(jù)片段序號(hào)小于N-1時(shí),使用普通數(shù)據(jù)包格式發(fā)送數(shù)據(jù)片段,若應(yīng)答方接受正確,發(fā)送ACK響應(yīng),繼續(xù)發(fā)送下一個(gè)數(shù)據(jù)片段;若發(fā)送方收到NAK響應(yīng),則重發(fā)上一次發(fā)送的普通數(shù)據(jù)包.當(dāng)發(fā)送數(shù)據(jù)片段序號(hào)為N時(shí),使用結(jié)束包數(shù)據(jù)格式發(fā)送第N個(gè)數(shù)據(jù)片段.若接收方接受正確,發(fā)送ACK響應(yīng),則通信正常結(jié)束;若接收到響應(yīng)NAK,則發(fā)送方重發(fā)第N個(gè)數(shù)據(jù)片段的結(jié)束包.
數(shù)據(jù)包采用JSON數(shù)據(jù)格式封裝,數(shù)據(jù)封裝格式如圖8所示.為了減少數(shù)據(jù)傳輸?shù)拇笮?,提高傳輸?shù)男剩瑢⒉杉臄?shù)據(jù)根據(jù)開關(guān)量和模擬量進(jìn)行分組,每組再將數(shù)據(jù)分為不同的數(shù)據(jù)塊.針對(duì)開關(guān)量,用一組0~255的數(shù)來表示8位狀態(tài)量.針對(duì)每一組的數(shù)據(jù)塊,用JSON數(shù)組進(jìn)行封裝,減少JSON格式數(shù)據(jù)的鍵占用過多的數(shù)據(jù)空間.數(shù)據(jù)塊名稱即為JSON數(shù)組的鍵值,數(shù)據(jù)長(zhǎng)度表示JSON格式數(shù)據(jù)的字節(jié)長(zhǎng)度,鍵值為long,數(shù)據(jù)表示即為JSON格式數(shù)據(jù),鍵值為data.
圖8 數(shù)據(jù)封裝格式Fig.8 The format of data encapsulation
MES系統(tǒng)實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)采用C++語言,基于SIMATIC NET V12服務(wù)器,開發(fā)OPC數(shù)據(jù)采集客戶端,實(shí)現(xiàn)現(xiàn)場(chǎng)設(shè)備過程數(shù)據(jù)的實(shí)時(shí)采集;采用Java語言,基于Spring+Hibernate+Struts2框架,應(yīng)用Socket和WebSocket實(shí)時(shí)通信技術(shù),實(shí)現(xiàn)基于Web的實(shí)時(shí)監(jiān)測(cè)系統(tǒng)的設(shè)計(jì)與開發(fā).
模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng)工作方式分為聯(lián)機(jī)工作和單機(jī)工作兩種方式,聯(lián)機(jī)工作方式是托盤傳送工料依次經(jīng)過每個(gè)生產(chǎn)單元的加工工藝,將工料加工為工件,合格工件放入倉庫,不合格工件分揀出來,托盤進(jìn)入下一個(gè)循環(huán)生產(chǎn).單機(jī)工作方式是托盤傳送工料從單個(gè)單元加工工藝從開始到結(jié)束的工作流程.工料加工過程中單元工作狀態(tài)即為工料基本信息以及工料加工信息,代表了工料加工過程中的機(jī)器的工作狀態(tài)和工料加工為工件的質(zhì)量信息.模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng)現(xiàn)場(chǎng)如圖9(a)所示.
MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)工作流程如圖10所示.實(shí)時(shí)監(jiān)測(cè)客戶端向WebSocket服務(wù)器發(fā)起連接請(qǐng)求或關(guān)閉請(qǐng)求,如果WebSocket服務(wù)器發(fā)起的是連接請(qǐng)求,則添加當(dāng)客戶端連接,客戶端連接數(shù)N=N+1,若當(dāng)前客戶端連接數(shù)N不為1,WebSocket服務(wù)器從數(shù)據(jù)采集終端獲取數(shù)據(jù)并且向所有客戶端推送數(shù)據(jù),否則WebSocket服務(wù)器向數(shù)據(jù)采集終端發(fā)起Socket連接請(qǐng)求,創(chuàng)建Socket通信通道,并向所有客戶端推送數(shù)據(jù);如果WebSocket服務(wù)器發(fā)起的是關(guān)閉請(qǐng)求,則刪除當(dāng)前客戶端連接,客戶端連接數(shù)N=N-1,若當(dāng)前連接數(shù)N為0,則關(guān)閉Socket連接.
圖9 模塊化柔性制造綜合實(shí)訓(xùn)系統(tǒng)及監(jiān)測(cè)界面Fig.9 Integrated training system for modular flexible manufacturing
圖10 系統(tǒng)工作流程Fig.10 Working flow chart of the system
MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng)同時(shí)包括聯(lián)機(jī)狀態(tài)和單機(jī)狀態(tài)兩種類型監(jiān)測(cè)界面.聯(lián)機(jī)狀態(tài)主要監(jiān)測(cè)產(chǎn)品在生產(chǎn)流水線上各個(gè)單元的工作情況以及產(chǎn)品所處于生產(chǎn)流水線的位置,如圖9(b)所示.單機(jī)狀態(tài)主要監(jiān)測(cè)每個(gè)單元脫離生產(chǎn)流水線自主運(yùn)行過程中該單元運(yùn)行的流程的動(dòng)畫模擬以及該單元運(yùn)行過程中各個(gè)狀態(tài),如圖11所示.圖11依次表示上料、落料、噴涂烘干、圖像檢測(cè)、加蓋、穿銷、檢測(cè)、條形碼識(shí)別及分揀等單元單機(jī)運(yùn)行時(shí),設(shè)備的運(yùn)行狀態(tài)和動(dòng)作狀態(tài).
圖11 單機(jī)狀態(tài)監(jiān)測(cè)界面Fig.11 The interface of single condition monitoring
設(shè)計(jì)并開發(fā)一款MES實(shí)時(shí)數(shù)據(jù)監(jiān)測(cè)系統(tǒng),該系統(tǒng)與傳統(tǒng)的采集監(jiān)測(cè)系統(tǒng)相比,解決了上層計(jì)劃系統(tǒng)與下層控制系統(tǒng)之間的信息通信,將生產(chǎn)與管理有機(jī)地結(jié)合起來.同時(shí)系統(tǒng)長(zhǎng)時(shí)間運(yùn)行穩(wěn)定、開發(fā)成本較低且升級(jí)維護(hù)方便簡(jiǎn)單.采用B/S架構(gòu),基于互聯(lián)網(wǎng)、云服務(wù),通過PC設(shè)備瀏覽器遠(yuǎn)程監(jiān)測(cè)現(xiàn)場(chǎng),可以替代傳統(tǒng)的崗位式的監(jiān)測(cè)方式,提高了作業(yè)效率.
[1] 陳剛良,郝平.制造執(zhí)行系統(tǒng)(MES)在染色車間的應(yīng)用[J].浙江工業(yè)大學(xué)學(xué)報(bào),2007,35(2):132-135.
[2] 李金華.德國(guó)“工業(yè)4.0”與“中國(guó)制造2025”的比較及啟示[J].中國(guó)地質(zhì)大學(xué)學(xué)報(bào)(社會(huì)科學(xué)版),2015,15(5):71-79.
[3] 肖力墉,蘇宏業(yè),苗宇,等.制造執(zhí)行系統(tǒng)功能體系結(jié)構(gòu)[J].化工學(xué)報(bào),2010(2):359-364.
[4] 程志倫,范玉青.鋼鐵企業(yè)基于組件的柔性制造執(zhí)行系統(tǒng)設(shè)計(jì)[J].計(jì)算機(jī)集成制造系統(tǒng),2007,13(3):490-496.
[5] 黃肖玲,柴天佑.復(fù)雜生產(chǎn)過程計(jì)劃調(diào)度級(jí)聯(lián)模型在選礦MES
中的應(yīng)用研究[J].自動(dòng)化學(xué)報(bào),2011,37(9):1130-1139.
[6] QIU R G. Towards ontology-driven knowledge synthesis for heterogeneous information systems[J]. Journal of intelligent manufacturing,2006,17(1):99-109.
[7] NAGORNY K, CLOLMBO A W, SCHMIDTMANN U. A service- and multi-agent-oriented manufacturing automation architecture: an IEC 62264 level 2 compliant implementation[J]. Computers in industry,2012,63(8):813-823.
[8] 李文輝.制造執(zhí)行系統(tǒng)(MES)的應(yīng)用與發(fā)展[J].蘭州理工大學(xué)學(xué)報(bào),2006,32(2):50-54.
[9] 臧傳真,范玉順.基于智能物件的制造企業(yè)信息系統(tǒng)研究[J].計(jì)算機(jī)集成制造系統(tǒng),2007,13(1):44-48.
[10] 王志新,金壽松.制造執(zhí)行系統(tǒng)MES及應(yīng)用[M].北京:中國(guó)電力出版社,2006.
[11] 陸慧明,朱耀春.控制裝置標(biāo)準(zhǔn)化通信[M].北京:機(jī)械工業(yè)出版社,2010.
[12] IWANITZ F, LANGE J. OPC fundamentals, implementation and application[M]. Heidelberg: Hüthig,2010.
[13] 王墊,于悅,張玉華.面向物聯(lián)網(wǎng)應(yīng)用平臺(tái)的Socket設(shè)計(jì)與優(yōu)化[J].吉林大學(xué)學(xué)報(bào)(工學(xué)版),2012,42(1):290-294.
[14] 毛明杰,王萬良,劉鋒光,等.基于WEB的伺服平臺(tái)遠(yuǎn)程監(jiān)控系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].浙江工業(yè)大學(xué)學(xué)報(bào),2006,34(1):105-109.
[15] WANG V, SALIM F, MOSKOVITS P. The definitive guide to HTML5 WebSocket[M]. Berkeley, California, USA: Apress,2013.
[16] COWARD D. Java webSocket programming[M]. New York: McGraw-Hill Education,2013.
(責(zé)任編輯:陳石平)
Design and development of MES real-time data monitoring system
ZHANG Guijun, CHEN Kai, XU Jianming, YU Xinyi
(College of Information Engineering, Zhejiang University of Technology, Hangzhou 310023, China)
To address the information islands problem in discrete manufacturing industry, which are caused by the independence of system to each other and lack of data sharing, MES real-time data monitoring system is designed and developed based on manufacturing execution system (MES) for manufacturing enterprise workshop. OPC Server, Socket and WebSocket are used for the real-time data acquisition of the state of field equipment, the exchange of network data, and real-time delivery of data between servers and browsers respectively. The reliable communication protocols are designed for transforming of network data, and the communication issues between the upper planning system and the lower control system can be effectively solved. The state of field equipment can be remotely monitored by users through the PC browser. Stable operation, low development costs, and easy maintenance are the advantages of the developed MES real-time data monitoring system which can replace the traditional monitoring method. It is of high value for research and application.
MES system; monitoring system; real-time data monitoring
2016-10-20
國(guó)家自然科學(xué)基金資助項(xiàng)目(61075062,61573317);浙江省大學(xué)生科技創(chuàng)新活動(dòng)計(jì)劃(新苗人才計(jì)劃)(2016R403083)
張貴軍(1974—),男,山西陽泉人,教授,博士生導(dǎo)師,研究方向?yàn)橹悄苄畔⑻幚?、?yōu)化理論與應(yīng)用以及智能制造等,E-mail:zgj@zjut.edu.cn.
TP39
A
1006-4303(2017)04-0401-08