張貴軍,陳 凱,徐建明,禹鑫燚
(浙江工業大學 信息工程學院,浙江 杭州 310023)
MES實時數據監測系統設計與開發
張貴軍,陳 凱,徐建明,禹鑫燚
(浙江工業大學 信息工程學院,浙江 杭州 310023)
針對離散制造業各系統之間相互獨立、缺乏數據共享,而導致功能重疊等信息孤島問題,基于面向制造企業車間執行層的生產信息化管理制造執行系統(MES),設計開發了MES實時數據監測系統.使用OPC Server實現現場設備狀態的實時采集,通過Socket實現網絡數據交換,采用WebSocket即時通信技術實現服務器與瀏覽器之間數據的實時推送.設計一種可靠的通信協議實現網絡數據的可靠傳輸,有效解決了上層計劃系統與下層控制系統之間的通信問題,用戶可以通過PC瀏覽器遠程監測現場設備的工作狀態.MES實時數據監測系統開發成本低、運行穩定且維護簡便,可以替代傳統崗位式監測方式,具有較高的研究和市場應用價值.
MES系統;監測系統;實時數據采集
隨著科學技術的發展,傳統工廠的生產加工模式已不再適合高速發展的信息化時代,制造業面臨著巨大的壓力.目前,由于制造業各系統之間相互獨立、缺乏數據共享而導致功能重疊等一系列信息孤島問題,阻斷了制造信息在工廠水平方向的傳遞,嚴重地制約工廠各系統之間的協調,降低制造業系統的發展水平,阻礙制造業信息化和工業化的進程[1].2013年4月在漢諾威工業博覽會上,德國政府提出“工業4.0”戰略,目的是提高德國工業的競爭力,在新一輪工業革命中占領先機.經李克強總理簽批,中國版的“工業4.0”規劃《中國制造2025》由國務院于2015年5月8日公布,在2015年10月十八屆五中全會通過“十三五”規劃后,成為最熱門的焦點之一[2].1990年美國先進制造研究公司(AMR)首次提出的制造執行系統(MES)是面向制造企業車間執行層的生產信息化管理系統,處于底層工業控制系統與上層計劃管理系統之間,有效地解決了上層計劃系統與下層控制系統之間的信息通信,將生產與管理有機地結合起來,對工廠制造業整體水平的提升具有重要意義[3-4].在歐美發達國家,研究人員和企業管理者對MES進行大量研究,不僅在理論研究上取得顯著的成就,而且在應用上也走在世界前列[5-7].國內對MES的理論研究起步比較晚,研究深度和廣度也落后于歐美西方國家,在企業中的應用也剛剛起步,主要停留在MES體系架構、內涵以及思想的研究上,應用系統的開發局限于MES單一功能[8-10].
針對某企業模塊化柔性制造綜合實訓系統,應用以太網、無線網為數據傳輸通道,瀏覽器為客戶端,開發基于OPC Server的數據采集終端,實現基于Socket和WebSocket的實時數據的傳輸和展示,最終實現基于Web的MES實時數據監測系統的設計與開發.
MES實時數據監測系統基于B/S架構,采用OPC技術,實現現場設備過程狀態數據的實時采集;采用Socket技術,實現異構環境下數據采集終端和Web服務器之間的數據通信;采用WebSocket技術,實現Web服務器與瀏覽器之間數據的即時通信.系統主要包括需求分析、系統架構設計以及功能設計與實現三部分,功能設計主要包括數據采集終端、Web服務器和通信協議三大模塊.
1.1 需求分析
MES實時數據監測系統基于模塊化柔性制造綜合實訓系統,通過對現場設備的過程狀態數據的實時采集、傳輸、處理、顯示,實現對該模塊化柔性制造綜合實訓系統運行過程的智能監測.模塊化柔性制造綜合實訓系統工作流程如圖1所示,主要由上料、串聯機器人示教搬運、液壓沖壓、并聯機器人加工、圖像檢測搬運、落料、噴涂烘干、圖像處理、加蓋、穿銷、檢測、條形碼自動黏貼與掃描、分揀輸送、提升機械手、物流倉儲、堆垛解垛及行車機械手等單元組成.

圖1 模塊化柔性制造綜合實訓系統流程圖Fig.1 Flow chart of integrated training system for modular flexible manufacturing
針對該實訓系統工作流程,實現對互聯網內實訓系統工作流程和工作狀態的多用戶實時監測.監測內容包括聯機狀態監測和單機狀態監測,單機狀態監測設備運行狀態、工件運行模擬動畫等;聯機狀態監測設備運行狀態、工件運行位置、報警及工件運行模擬動畫等.
1.2 系統架構
MES實時數據監測系統包括三層架構,如圖2所示.三層架構由數據采集層、Web服務器層以及客戶端層組成,數據采集層包括過程控制層(PCS)和基于C++語言的OPC客戶端的設計與開發;Web服務器層包括MES系統實時數據的獲取、手工采集數據、管理數據以及歷史數據等數據倉庫的搭建和發布;客戶端層包括數據的獲取和顯示.數據采集層與過程控制層以SIMATIC NET作為OPC Server連接現場設備的媒介,通過OPC客戶端采集現場設備運行的過程數據;Web服務器層通過Socket技術實現與數據采集層之間數據的實時通信;客戶端層通過WebSocket技術實現與Web服務器層之間數據的即時通信.
傳統的現場設備實時數據采集方案,每個應用軟件開發商都需要提供專用的接口函數來存取現場設備的數據信息.由于設備種類多種多樣,產品經常升級,往往給用戶和開發商帶來巨大的工作負擔,不符合工作的實際需求.

圖2 MES實時數據監測系統架構圖Fig.2 Structure diagram of MES real-time data monitoring system
2.1 OPC技術
OPC技術是以OLE、組件對象模型COM、分布式組件對象模型DCOM以及ActiveX技術為基礎,用于過程控制的OLE技術[11].OPC通過提供一套標準的OLE/COM接口,完成從服務器數據源提取數據并傳輸到客戶端,是一種具有高效性、開放性、可靠性和可互操作性的即插即用的設備驅動程序[12].
OPC服務器主要由OPC服務器對象(Server)、OPC組對象(Group)以及OPC項對象(Item)三類邏輯對象模型組成.Server對象是Group對象的容器,Group對象是Item對象的容器,Item對象是OPC服務器到數據源的一個物理連接,通過Server,Group,Item三層接口,連接到OPC Server的硬件裝置.其關系圖如圖3所示.

圖3 OPC服務器對象關系Fig.3 Relationship of OPC server object
2.2 客戶端設計與開發
數據采集終端以OPC Server為基礎,通過Server, Group, Item三層接口與現場設備的端口通道建立連接,OPC Server和OPC Group通過OPC Item與現場設備的I/O進行數據交換,提取現場設備的數據信息.數據存儲接口用于數據入庫,對數據進行備份以及歷史分析.數據通信接口通過Socket實現實時數據跨平臺數據交互.系統架構如圖4所示.

圖4 數據采集終端結構圖Fig.4 Structure diagram of data acquisition terminal
OPC服務器組對象的工作方式有冷連接和熱連接兩種方式.對于溫度、流量和速度等變化周期相對固定的信號,采用冷連接的工作方式,設置合理的采樣周期對現場設備實時數據進行采集.對于報警、控制命令等變化周期不固定的信號和事件觸發信號,采用熱連接的工作方式,及時獲取現場設備的實時數據.根據服務器對象的工作方式將現場設備的547路數據分為冷連接和熱連接兩種讀取數據的模式,其中冷連接423路,熱連接124路.表1為冷連接方式讀取數據的部分設備數據地址,表2為熱連接方式讀取數據的部分設備數據地址.

表1 冷連接方式讀取部分數據地址

表2 熱連接方式讀取部分數據地址
Web服務器的設計與開發是基于B/S架構的監測系統的核心內容,主要包括監測客戶端、實時數據通信及數據庫存儲等模塊的設計與開發.
3.1 Socket技術
TCP/IP協議是Internet最基本的協議,主要由網絡層IP協議和傳輸層TCP協議構成.Socket又稱“套接字”,用于描述IP地址和端口,是一個通信鏈的句柄,用來實現不同虛擬機或不同計算機之間的通信[13].TCP/IP是一種可靠的網絡通信協議,通過在通信兩端各自創建一個套接字(Socket),形成可靠地的網絡虛擬鏈路,從而兩端程序通過網絡虛擬鏈路進行通訊[14].
在客戶端/服務器通信模式中,Socket是通信連接兩端的收發器,服務器和客戶端都通過Socket來收發數據.客戶端需要主動創建與服務器連接的Socket,服務器端收到客戶端的連接請求,創建與客戶端連接的Socket.
Socket連接過程分為三個步驟,包括服務器監聽、客戶端請求及連接確認,如圖5所示.服務器端套接字一直處于等待連接的狀態,實時監測網絡中的Socket連接,并不定位特定的客戶端.當客戶端套接字發起連接請求且連接目標與服務器端的套接字相匹配時,服務器端套接字監聽到客戶端的連接請求并響應客戶端套接字的請求,同時通過創建新線程把服務器端的套接字的描述發送給客戶端.如果客戶端確認收到的套接字,則創建與服務器端進行數據實時通信的Socket連接.而服務器端的套接字繼續處于監聽狀態,繼續接收其他客戶端套接字的連接請求.
3.2 WebSocket技術
WebSocket協議是一個網絡協議,允許兩個相連的端在一個單一的TCP連接上進行全雙工消息通信.WebSocket協議基于TCP的協議,與TCP連接的建立過程類似,但與傳統的基于TCP連接的協議有所不同的是WebSocket協議的握手過程需要從HTTP協議發起連接[15].連接的發起者發送一個專門制定的HTTP請求,其中包含連接的WebSocket端點的URL,稱為打開階段握手.如果服務器接受連接,制定一個稱為打開階段握手響應的特殊的HTTP響應并發送回客戶端.此時,保證WebSocket消息的往返傳遞TCP連接創建,一直保持活躍直到任意一方決定終止連接,或者是某些外部因素導致連接關閉[16].圖6為WebSocket 協議握手過程的示意圖.

圖5 Socket通信模式Fig.5 Socket communication mode

圖6 WebSocket實時通信圖Fig.6 Structure diagram of WebSocket real-time communication
首先,瀏覽器客戶端向服務器發起WebSocket握手請求,并發送基于HTTP協議的請求報文.然后,服務器收到客戶端的WebSocket發送的握手請求報文并對握手請求報文進行解析,如果握手請求報文滿足WebSocket協議條件,則向客戶端發送WebSocket握手應答,并發送基于HTTP的應答報文.最后,客戶端收到服務器端的WebSocket應答報文并對應答報文進行解析驗證,如果驗證成功,則創建WebSocket連接,雙方建立全雙工通信,否則客戶端主動斷開連接.
3.3 Web服務器端
WebSocket服務器端主要包括實時數據獲取模塊、數據倉庫模塊和實時數據推送模塊三部分.實時數據獲取模塊基于Socket實時通信技術,實現WebSocket服務器與數據采集終端的數據交換,為保證數據的唯一性和一致性,提高多用戶并發訪問效率,只創建唯一的Socket連接.數據倉庫模塊由手工采集數據、MES系統實時數據、管理數據以及歷史數據組建而成,是基于B/S架構監測系統的數據來源.實時數據推送模塊基于WebSocket即時通信技術,實現瀏覽器客戶端與WebSocket服務器之間的通信,采用廣播傳送方式通信,WebSocket服務器向所有客戶端發送同一份數據包,客戶端篩選對應的數據,保證實時監測客戶端數據的唯一性和一致性.
數據推送結構圖如圖7所示.首先,瀏覽器客戶端向WebSocket服務器發起連接請求,連接成功后創建WebSocket服務器與客戶端實時數據傳輸通道.然后,WebSocket服務器通過數據庫通信接口從數據庫中提取手工采集的數據、管理數據和歷史數據,通過數據通信接口獲取MES系統實時數據.最后,WebSocket服務器通過實時數據傳輸通道將實時數據推送到瀏覽器客戶端.

圖7 基于廣播式數據推送結構圖Fig.7 Structure diagram of data push based on broadcast
網絡通信協議三要素包括語法、語義及時序.語法規定信息的格式;語義規定通信雙方怎么去做;時序規定事件的先后順序.傳輸的數據流以包的形式進行傳輸,包括發送方的請求包、普通數據包、結束包及接收方發出的響應數據包.
請求包是發送方發給接收方的協議包,并用于向接收方發出發送文件的請求.ENQ表示請求包的包標識,占用1個字節,值為5.Size表示傳送文件的長度,占用4個字節.NameLength表示文件名的長度,占用1個字節.Name表示傳送文件的名稱,占用長度有文件名長度字節內容決定.校驗占用1個字節,是從ENQ開始到校驗前所有字節的異或運算和.
普通數據包是發送方向接收方發送具有固定長度的數據包,固定位1 028字節長度.STX是普通數據包的包標識,占用1個字節,值為2.Number用于標識當前數據包在整個傳輸過程中的順序號,占用2個字節.Data為傳輸的具體內容,占用1 024個字節.校驗占用1個字節,是從STX開始到校驗前所有字節的異或運算和.
結束包是發送方向接收方發送的最后一個數據包,長度不固定.ETX是結束包的包標識,占用1個字節,值為3.Length表示數據包傳送數據的長度,占用2個字節.Data表示傳送的具體數據內容,長度由數據長度的值決定.校驗占用1個字節,是從ETX開始到校驗前所有字節的異或運算和.
響應包是接收方發給發送方的應答信息,占用1個字節,有效的取值如表3所示.

表3 響應包取值及其含義
通信過程分為發送請求和發送文件兩個過程.發送方發送請求包,等待應答方響應.若發送方收到應答方的ACK響應,發送普通數據包;若收到應答方的NAK響應,重發請求包;若收到應答方的CAN響應,則取消本次發送請求.發送方將待發送的文件以1 024字節為單位拆分為N個數據片段,最后一個數據片段長度不定,小于或等于1 024字節.當發送數據片段序號小于N-1時,使用普通數據包格式發送數據片段,若應答方接受正確,發送ACK響應,繼續發送下一個數據片段;若發送方收到NAK響應,則重發上一次發送的普通數據包.當發送數據片段序號為N時,使用結束包數據格式發送第N個數據片段.若接收方接受正確,發送ACK響應,則通信正常結束;若接收到響應NAK,則發送方重發第N個數據片段的結束包.
數據包采用JSON數據格式封裝,數據封裝格式如圖8所示.為了減少數據傳輸的大小,提高傳輸的效率,將采集的數據根據開關量和模擬量進行分組,每組再將數據分為不同的數據塊.針對開關量,用一組0~255的數來表示8位狀態量.針對每一組的數據塊,用JSON數組進行封裝,減少JSON格式數據的鍵占用過多的數據空間.數據塊名稱即為JSON數組的鍵值,數據長度表示JSON格式數據的字節長度,鍵值為long,數據表示即為JSON格式數據,鍵值為data.

圖8 數據封裝格式Fig.8 The format of data encapsulation
MES系統實時數據監測系統采用C++語言,基于SIMATIC NET V12服務器,開發OPC數據采集客戶端,實現現場設備過程數據的實時采集;采用Java語言,基于Spring+Hibernate+Struts2框架,應用Socket和WebSocket實時通信技術,實現基于Web的實時監測系統的設計與開發.
模塊化柔性制造綜合實訓系統工作方式分為聯機工作和單機工作兩種方式,聯機工作方式是托盤傳送工料依次經過每個生產單元的加工工藝,將工料加工為工件,合格工件放入倉庫,不合格工件分揀出來,托盤進入下一個循環生產.單機工作方式是托盤傳送工料從單個單元加工工藝從開始到結束的工作流程.工料加工過程中單元工作狀態即為工料基本信息以及工料加工信息,代表了工料加工過程中的機器的工作狀態和工料加工為工件的質量信息.模塊化柔性制造綜合實訓系統現場如圖9(a)所示.
MES實時數據監測系統工作流程如圖10所示.實時監測客戶端向WebSocket服務器發起連接請求或關閉請求,如果WebSocket服務器發起的是連接請求,則添加當客戶端連接,客戶端連接數N=N+1,若當前客戶端連接數N不為1,WebSocket服務器從數據采集終端獲取數據并且向所有客戶端推送數據,否則WebSocket服務器向數據采集終端發起Socket連接請求,創建Socket通信通道,并向所有客戶端推送數據;如果WebSocket服務器發起的是關閉請求,則刪除當前客戶端連接,客戶端連接數N=N-1,若當前連接數N為0,則關閉Socket連接.

圖9 模塊化柔性制造綜合實訓系統及監測界面Fig.9 Integrated training system for modular flexible manufacturing

圖10 系統工作流程Fig.10 Working flow chart of the system
MES實時數據監測系統同時包括聯機狀態和單機狀態兩種類型監測界面.聯機狀態主要監測產品在生產流水線上各個單元的工作情況以及產品所處于生產流水線的位置,如圖9(b)所示.單機狀態主要監測每個單元脫離生產流水線自主運行過程中該單元運行的流程的動畫模擬以及該單元運行過程中各個狀態,如圖11所示.圖11依次表示上料、落料、噴涂烘干、圖像檢測、加蓋、穿銷、檢測、條形碼識別及分揀等單元單機運行時,設備的運行狀態和動作狀態.

圖11 單機狀態監測界面Fig.11 The interface of single condition monitoring
設計并開發一款MES實時數據監測系統,該系統與傳統的采集監測系統相比,解決了上層計劃系統與下層控制系統之間的信息通信,將生產與管理有機地結合起來.同時系統長時間運行穩定、開發成本較低且升級維護方便簡單.采用B/S架構,基于互聯網、云服務,通過PC設備瀏覽器遠程監測現場,可以替代傳統的崗位式的監測方式,提高了作業效率.
[1] 陳剛良,郝平.制造執行系統(MES)在染色車間的應用[J].浙江工業大學學報,2007,35(2):132-135.
[2] 李金華.德國“工業4.0”與“中國制造2025”的比較及啟示[J].中國地質大學學報(社會科學版),2015,15(5):71-79.
[3] 肖力墉,蘇宏業,苗宇,等.制造執行系統功能體系結構[J].化工學報,2010(2):359-364.
[4] 程志倫,范玉青.鋼鐵企業基于組件的柔性制造執行系統設計[J].計算機集成制造系統,2007,13(3):490-496.
[5] 黃肖玲,柴天佑.復雜生產過程計劃調度級聯模型在選礦MES
中的應用研究[J].自動化學報,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] 李文輝.制造執行系統(MES)的應用與發展[J].蘭州理工大學學報,2006,32(2):50-54.
[9] 臧傳真,范玉順.基于智能物件的制造企業信息系統研究[J].計算機集成制造系統,2007,13(1):44-48.
[10] 王志新,金壽松.制造執行系統MES及應用[M].北京:中國電力出版社,2006.
[11] 陸慧明,朱耀春.控制裝置標準化通信[M].北京:機械工業出版社,2010.
[12] IWANITZ F, LANGE J. OPC fundamentals, implementation and application[M]. Heidelberg: Hüthig,2010.
[13] 王墊,于悅,張玉華.面向物聯網應用平臺的Socket設計與優化[J].吉林大學學報(工學版),2012,42(1):290-294.
[14] 毛明杰,王萬良,劉鋒光,等.基于WEB的伺服平臺遠程監控系統設計與實現[J].浙江工業大學學報,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.
(責任編輯:陳石平)
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
國家自然科學基金資助項目(61075062,61573317);浙江省大學生科技創新活動計劃(新苗人才計劃)(2016R403083)
張貴軍(1974—),男,山西陽泉人,教授,博士生導師,研究方向為智能信息處理、優化理論與應用以及智能制造等,E-mail:zgj@zjut.edu.cn.
TP39
A
1006-4303(2017)04-0401-08