制造執(zhí)行系統(tǒng)(ManufacturingExecutionSystem,簡(jiǎn)稱MES)是現(xiàn)代集成制造系統(tǒng)中制造管理自動(dòng)化的一項(xiàng)重要技術(shù)。它定位于企業(yè)上層管理和底層設(shè)備之間,面向車間層的管理控制,收集生產(chǎn)過(guò)程中的大量的實(shí)時(shí)數(shù)據(jù),反饋處理結(jié)果和生產(chǎn)指令,對(duì)生產(chǎn)過(guò)程中發(fā)生的事件及時(shí)進(jìn)行處理,保持計(jì)劃層與生產(chǎn)控制層的信息通暢。可以說(shuō),MES是制造企業(yè)生產(chǎn)管理控制信息集成的樞紐,而其中生產(chǎn)過(guò)程狀態(tài)信息又是MES得以正常運(yùn)行的重要信息來(lái)源。
1 車間制造執(zhí)行系統(tǒng)構(gòu)建
為應(yīng)對(duì)當(dāng)代車輛關(guān)鍵零部件研制提出的周期短、交貨期緊、批量品種變化的挑戰(zhàn),提高車輛關(guān)鍵零部件快速研制能力和自主創(chuàng)新能力。針對(duì)某車輛關(guān)鍵零部件車間的實(shí)際需求,設(shè)計(jì)并開(kāi)發(fā)車輛關(guān)鍵零部件車間制造執(zhí)行系統(tǒng),該系統(tǒng)面向車輛關(guān)鍵零部件制造車間,有效地儲(chǔ)存和傳遞生產(chǎn)信息,監(jiān)控生產(chǎn)狀態(tài)及計(jì)劃信息執(zhí)行情況、產(chǎn)品質(zhì)量情況、資源配置情況等,優(yōu)化車間的生產(chǎn)過(guò)程。實(shí)現(xiàn)車間級(jí)制造信息的管理與集成,利用計(jì)算機(jī)輔助進(jìn)行信息管理、生產(chǎn)工藝計(jì)劃制定和生產(chǎn)過(guò)程控制,完成車間內(nèi)的信息集成,驅(qū)動(dòng)生產(chǎn)的有序、高效運(yùn)行。該系統(tǒng)的軟件架構(gòu)如下圖所示:
圖1 車間制造執(zhí)行系統(tǒng)軟件架構(gòu)
本系統(tǒng)采用基于WEB 的多層技術(shù)架構(gòu)。為了滿足系統(tǒng)的實(shí)際功能及性能需求并適應(yīng)車間管理的業(yè)務(wù)模式,本系統(tǒng)特別采用了ZK框架來(lái)實(shí)現(xiàn)其表現(xiàn)層。ZK是一個(gè)事件驅(qū)動(dòng)(event-driven)的,基于組件(component-based)的,用以豐富網(wǎng)絡(luò)程序中用戶界面的框架。利用ZK框架,不需撰寫(xiě)JavaScript,即可開(kāi)發(fā)出具有Ajax豐富互動(dòng)效果的網(wǎng)頁(yè)型應(yīng)用程序。即軟件系統(tǒng)的結(jié)構(gòu)是B/S 的,而軟件的操作風(fēng)格是C/S 的,把兩種軟件結(jié)構(gòu)的特點(diǎn)有機(jī)的結(jié)合了起來(lái),且不增加系統(tǒng)的開(kāi)發(fā)難度。
2 制造執(zhí)行系統(tǒng)狀態(tài)監(jiān)控技術(shù)整體架構(gòu)
車間制造執(zhí)行系統(tǒng)需要對(duì)底層設(shè)備生產(chǎn)狀態(tài)進(jìn)行采集和監(jiān)控,生產(chǎn)狀態(tài)是車間制造執(zhí)行系統(tǒng)得以正常運(yùn)行的主要信息和數(shù)據(jù)來(lái)源。本車間是數(shù)控機(jī)加車間,生產(chǎn)設(shè)備主要是離散的數(shù)控機(jī)床,數(shù)控機(jī)床生產(chǎn)狀態(tài)信息采集技術(shù)難題的解決是制造執(zhí)行系統(tǒng)實(shí)現(xiàn)的關(guān)鍵。數(shù)控機(jī)床的參數(shù),生產(chǎn)狀態(tài),刀具信息,主軸信息,NC程序信息等都是需要重點(diǎn)進(jìn)行監(jiān)控的。機(jī)床狀態(tài)監(jiān)控功能主要是在制造執(zhí)行系統(tǒng)的機(jī)床狀態(tài)監(jiān)控模塊中實(shí)現(xiàn)的。
本系統(tǒng)是基于Web的制造執(zhí)行系統(tǒng),要實(shí)現(xiàn)對(duì)底層數(shù)控機(jī)床的狀態(tài)監(jiān)控需要解決兩個(gè)層面的技術(shù)難題。一個(gè)是軟件架構(gòu)的,一個(gè)是狀態(tài)采集技術(shù)的。第一個(gè)問(wèn)題就是如何在本系統(tǒng)的軟件架構(gòu)下實(shí)現(xiàn)基于Web的狀態(tài)監(jiān)控軟件設(shè)計(jì)與開(kāi)發(fā),另一個(gè)問(wèn)題是如何實(shí)現(xiàn)對(duì)車間內(nèi)各種類型的數(shù)控機(jī)床進(jìn)行采集,并最終把采集到設(shè)備狀態(tài)信息集成到軟件系統(tǒng)中,從而達(dá)到對(duì)車間數(shù)控機(jī)床的狀態(tài)監(jiān)控。
為解決實(shí)時(shí)顯示生產(chǎn)狀態(tài)信息的問(wèn)題,在軟件實(shí)現(xiàn)方面采用ZK框架的服務(wù)器推(Server-push)技術(shù),負(fù)責(zé)對(duì)狀態(tài)信息的處理。狀態(tài)信息由負(fù)責(zé)狀態(tài)采集的軟硬件采集到,存儲(chǔ)在生產(chǎn)狀態(tài)數(shù)據(jù)庫(kù)中。制造執(zhí)行系統(tǒng)實(shí)時(shí)監(jiān)控?cái)?shù)據(jù)庫(kù)中狀態(tài)信息的變化,并實(shí)時(shí)根據(jù)數(shù)據(jù)的變化把狀態(tài)數(shù)據(jù)推到每個(gè)ZK頁(yè)面中去。這樣車間工作人員就能及時(shí)掌握到各機(jī)床狀態(tài)信息的變化。
根據(jù)數(shù)控機(jī)床種類的不同,主要是FANUC數(shù)控機(jī)床和西門(mén)子數(shù)控機(jī)床,采用不同的狀態(tài)采集技術(shù)。對(duì)于FANUC數(shù)控機(jī)床使用串口宏技術(shù)采集機(jī)床狀態(tài),對(duì)于西門(mén)子數(shù)控機(jī)床采用PLC接口技術(shù)進(jìn)行采集。圖2為機(jī)床狀態(tài)監(jiān)控的整體軟硬件技術(shù)架構(gòu)。
圖2 機(jī)床狀態(tài)監(jiān)控的整體架構(gòu)
3 ZK框架服務(wù)器推(Ser ver-pu sh)技術(shù)
ZK框架是一個(gè)支持推模式的框架,即服務(wù)器推(Server-push)技術(shù)。服務(wù)器推技術(shù)是說(shuō)一種基于網(wǎng)絡(luò)的交流,其請(qǐng)求是由中央服務(wù)端發(fā)起。與之相對(duì)應(yīng)的是拉模式,拉模式是一種請(qǐng)求由接受方或者說(shuō)客戶端發(fā)起的。這種技術(shù)也可以叫作反向Ajax(reverse-Ajax)。所謂推模式,就是服務(wù)器把數(shù)據(jù)推到每個(gè)ZK頁(yè)面上,而不是客戶端請(qǐng)求后的響應(yīng),并且可以實(shí)時(shí)地反映數(shù)據(jù)的變化。它的這種特性使得以它為表現(xiàn)層框架的軟件系統(tǒng)具備了特殊的功能。利用ZK框架的這一特點(diǎn),再輔以相應(yīng)的機(jī)床數(shù)據(jù)采集技術(shù),以數(shù)據(jù)庫(kù)集成接口,即狀態(tài)采集軟硬件將機(jī)床狀態(tài)存入生產(chǎn)狀態(tài)數(shù)據(jù)庫(kù),ZK框架通過(guò)把數(shù)據(jù)庫(kù)中的機(jī)床狀態(tài)數(shù)據(jù)推到任意的訪問(wèn)機(jī)床狀態(tài)監(jiān)控模塊的頁(yè)面上,就可以實(shí)現(xiàn)機(jī)床狀態(tài)實(shí)時(shí)監(jiān)控。
通過(guò)使用服務(wù)器推技術(shù),需要啟動(dòng)一個(gè)工作線程對(duì)相應(yīng)的數(shù)據(jù)進(jìn)行不間斷地查詢,當(dāng)預(yù)先定義的條件滿足時(shí),則可以在工作線程內(nèi)將內(nèi)容發(fā)至客戶端或更新客戶端的內(nèi)容。服務(wù)器推技術(shù)最適合應(yīng)用于需要實(shí)時(shí)動(dòng)態(tài)更新數(shù)據(jù)的應(yīng)用場(chǎng)景。機(jī)床狀態(tài)實(shí)時(shí)監(jiān)控使用該項(xiàng)技術(shù)是再恰當(dāng)不過(guò)的了。在ZK框架下使用服務(wù)器推技術(shù)很簡(jiǎn)單,僅需要如下的三步,(1)使用Desktop.enableServERPush(booleanbool)為桌面調(diào)用啟用服務(wù)器推動(dòng)。( 2 ) 將需要更新的組件、數(shù)據(jù)傳遞至工作線程。( 3 ) 在桌面內(nèi)調(diào)用工作線程。
遵照這3 個(gè)步驟,就可以實(shí)現(xiàn)狀態(tài)監(jiān)控頁(yè)面的開(kāi)發(fā)。服務(wù)器推機(jī)制是使用客戶端輪詢(client-polling)技術(shù)實(shí)現(xiàn)的,即客戶端將會(huì)反復(fù)詢問(wèn)服務(wù)器以調(diào)用工作線程完成其工作,詢問(wèn)的頻率可以調(diào)用Executions.setDelay(intmin,intmax,intfactor )手動(dòng)調(diào)整。
4 FANUC機(jī)床串口宏?duì)顟B(tài)采集技術(shù)
本車間內(nèi)共有4 種類型的FANUC 機(jī)床,分別為FANU C0i、FANUC 16i、FANUC 18i、和FANUC 31i。通過(guò)硬件接線引出機(jī)床狀態(tài)信號(hào)的技術(shù)方式涉及硬件改造,容易破壞數(shù)控設(shè)備,技術(shù)風(fēng)險(xiǎn)大,實(shí)施周期長(zhǎng)。對(duì)于FANUC系統(tǒng),我們通過(guò)FANUC的B 類宏程序進(jìn)行機(jī)床狀態(tài)采集。FANUC的這些種類的數(shù)控系統(tǒng)提供了機(jī)床狀態(tài)的輸出功能,可以編寫(xiě)專用的數(shù)控機(jī)床狀態(tài)串口采集軟件,通過(guò)計(jì)算機(jī)串口與數(shù)控系統(tǒng)的串口硬件連接,完成機(jī)床狀態(tài)信息采集。
通過(guò)串口采集機(jī)床狀態(tài)信息的原理是在機(jī)床執(zhí)行的NC程序中加入宏指令,宏指令打開(kāi)串口,向串口輸出信息,再關(guān)閉串口,上位機(jī)通過(guò)串口監(jiān)聽(tīng)線程解析接到的機(jī)床狀態(tài)信息,并把該信息存儲(chǔ)到數(shù)據(jù)庫(kù)中,從而實(shí)現(xiàn)對(duì)機(jī)床狀態(tài)信息的實(shí)時(shí)采集,車間生產(chǎn)管理系統(tǒng)的機(jī)床狀態(tài)監(jiān)控模塊通過(guò)實(shí)時(shí)查詢存儲(chǔ)在數(shù)控庫(kù)中的機(jī)床狀態(tài)信息,并對(duì)其進(jìn)行解析處理,就實(shí)現(xiàn)了對(duì)機(jī)床的狀態(tài)監(jiān)控。下面為各宏指令的含義:
打開(kāi)指令:POPEN ,建立與外部輸入輸出設(shè)備的連接。
數(shù)據(jù)輸出指令:BPR NT或DPRNT指定需要輸出的數(shù)據(jù),包括系統(tǒng)地址變量、字符等。
關(guān)閉指令:PCLOS,解除與外部輸入輸出設(shè)備的連接。
這些宏指令將系統(tǒng)的地址變量的值從串口輸出,而這些變量對(duì)應(yīng)數(shù)控機(jī)床的狀態(tài)信息。表1為部分FANUC的系統(tǒng)變量地址 :
表1 FANUC部分系統(tǒng)變量地址
如果要采集NC程序的程序號(hào),只要把如下語(yǔ)句加入NC 程序就可以采集到程序號(hào)了。
…
POPEN
DPRNT[NUM#4115[40]]
PCLOS
…
針對(duì)不同的要采集的機(jī)床狀態(tài)信息,通過(guò)數(shù)據(jù)輸出指令,就可以把機(jī)床狀態(tài)信息傳送到上位機(jī),進(jìn)而由狀態(tài)監(jiān)控模塊發(fā)布到網(wǎng)絡(luò)上。
5 西門(mén)子機(jī)床PLC接口狀態(tài)采集技術(shù)
本車間大部分的數(shù)控機(jī)床都是西門(mén)子840D或810D數(shù)控系統(tǒng),對(duì)于西門(mén)子數(shù)控系統(tǒng),由于其采用的PLC 是通用的PLC系統(tǒng),因此可以通過(guò)采集數(shù)控系統(tǒng)PLC的狀態(tài)寄存器的值來(lái)實(shí)現(xiàn)狀態(tài)信息采集的目的。
由于西門(mén)子840D或810D數(shù)控系統(tǒng)采用的PLC是西門(mén)子的S7-300PLC,故采用Prodave接口開(kāi)發(fā)采集監(jiān)控軟件對(duì)其進(jìn)行狀態(tài)監(jiān)控。采集用的硬件是大連德嘉公司ETH _ MPI轉(zhuǎn)換器。將西門(mén)子S7-300PLC的MPI接口通過(guò)ETH_MPI轉(zhuǎn)換器轉(zhuǎn)換成Profinet協(xié)議(TCP/IP),然后用以太網(wǎng)與上位機(jī)相連。ETH_MPI轉(zhuǎn)換器與西門(mén)子以太網(wǎng)通訊處理器CP343功能相同,可替代西門(mén)子CP5611 ,CP5613 通訊卡。
通過(guò)查閱數(shù)控機(jī)床的資料,找到需要監(jiān)控的狀態(tài)所在的寄存器地址,通過(guò)Prodave接口的編程實(shí)現(xiàn)對(duì)這些寄存器地址位的讀取,同時(shí)將這些狀態(tài)數(shù)據(jù)寫(xiě)入生產(chǎn)狀態(tài)數(shù)據(jù)庫(kù),再通過(guò)車間制造執(zhí)行系統(tǒng)的機(jī)床狀態(tài)監(jiān)控模塊發(fā)布給局域網(wǎng)上的所有用戶。
6 總結(jié)
在進(jìn)行類似上述離散型制造執(zhí)行系統(tǒng)的開(kāi)發(fā)過(guò)程中,數(shù)控機(jī)床的狀態(tài)監(jiān)控是實(shí)現(xiàn)狀態(tài)監(jiān)控模塊開(kāi)發(fā)的主要組成部分。為了降低技術(shù)風(fēng)險(xiǎn)、工程造價(jià),縮短工作周期,我們往往采用數(shù)控機(jī)床原有的狀態(tài)采集接口,如串行口、MPI 接口等。只有在不得以的情況下才會(huì)通過(guò)硬件連接的方式采集機(jī)床的狀態(tài)信息。但不論何種狀態(tài)信息采集模式,ZK框架的服務(wù)器推(Server-push)技術(shù)都可以把狀態(tài)信息發(fā)布到整個(gè)系統(tǒng)網(wǎng)絡(luò)上。這種結(jié)合網(wǎng)絡(luò)數(shù)據(jù)庫(kù)、信息采集、服務(wù)器推等相關(guān)技術(shù)的模式,可以很好地指導(dǎo)未來(lái)基于Web 的制造執(zhí)行系統(tǒng)狀態(tài)監(jiān)控模塊的構(gòu)建,而ZK 框架結(jié)合Spring框架、Hibernate框架也為制造執(zhí)行系統(tǒng)軟件的實(shí)現(xiàn)提供了有力的支撐。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.lukmueng.com/
本文標(biāo)題:基于ZK框架的MES狀態(tài)監(jiān)控技術(shù)研究
本文網(wǎng)址:http://www.lukmueng.com/html/consultation/1083939080.html