隨著科學(xué)技術(shù)的不斷提高,設(shè)備管理系統(tǒng)作為制造執(zhí)行系統(tǒng)MES中一個重要的子系統(tǒng),是現(xiàn)代企業(yè)物質(zhì)技術(shù)的基礎(chǔ),是生產(chǎn)經(jīng)營順利進行的前提以及提高經(jīng)濟效益的保證。目前,我國大部分企業(yè)的數(shù)控設(shè)備信息化程度不高,導(dǎo)致在企業(yè)執(zhí)行層的MES設(shè)備管理系統(tǒng)不能及時、準(zhǔn)確的獲取設(shè)備控制層的相關(guān)信息,造成管理鴻溝。其次,現(xiàn)有的MES設(shè)備管理系統(tǒng)雖然方便了數(shù)控設(shè)備臺帳管理、基本信息記錄等一些靜態(tài)信息管理,但不能針對數(shù)控設(shè)備的實時狀態(tài)變化進行動態(tài)管理。
網(wǎng)絡(luò)化分布式數(shù)字控制DNC可以把數(shù)控設(shè)備作為一個信息節(jié)點連接到企業(yè)的信息管網(wǎng)中,實時、準(zhǔn)確、自動的為整個信息系統(tǒng)提供及時、有效的數(shù)據(jù),為網(wǎng)絡(luò)化制造提供技術(shù)支撐。本文將網(wǎng)絡(luò)化DNC融入到MES設(shè)備管理系統(tǒng)的目的在于可以使企業(yè)執(zhí)行層與控制層無縫連接,消除底層設(shè)備的信息孤島,同時獲取數(shù)控設(shè)備的實時狀態(tài)信息,對控制層設(shè)備進行動態(tài)管理,實現(xiàn)企業(yè)執(zhí)行層與控制層之間的信息交換和協(xié)同工作。
1 系統(tǒng)總體框架結(jié)構(gòu)及功能設(shè)計
系統(tǒng)主要是針對工業(yè)現(xiàn)場的數(shù)控設(shè)備開發(fā)的,選用的網(wǎng)絡(luò)主要用于承載數(shù)控加工程序、設(shè)備運行狀態(tài)等信息,為了滿足高實時性、可靠性和可擴展性的網(wǎng)絡(luò)要求,系統(tǒng)通過工業(yè)以太網(wǎng)與企業(yè)管理層進行連接,采用TCP/IP協(xié)議,很容易集成到管理辦公網(wǎng)絡(luò)。同時,系統(tǒng)通過串口服務(wù)器與數(shù)控系統(tǒng)的RS-2232串行口進行連接通信。串口服務(wù)器將來自TCP/IP協(xié)議的數(shù)據(jù)包解析為串口數(shù)據(jù)流;反之也可以將串口數(shù)據(jù)流打成TCP/IP協(xié)議的數(shù)據(jù)包,從而實現(xiàn)數(shù)據(jù)的網(wǎng)絡(luò)傳輸。系統(tǒng)利用串口服務(wù)器虛擬串口的功能,可將數(shù)控系統(tǒng)的數(shù)據(jù)信息透明的傳輸?shù)缴衔粰C。也就是說,將串口服務(wù)器連接到網(wǎng)絡(luò)中,上位機對數(shù)控系統(tǒng)的串口通信就相當(dāng)于對上位機本身的串口通信一樣。
系統(tǒng)采用客戶端/服務(wù)器的通訊方式,上位機為融入網(wǎng)絡(luò)化DNC的MES設(shè)備管理系統(tǒng)的客戶端,系統(tǒng)的服務(wù)器端安裝在數(shù)控系統(tǒng)上。系統(tǒng)結(jié)構(gòu)如圖1所示。
圖1 系統(tǒng)結(jié)構(gòu)圖
由圖1可以看出,系統(tǒng)由通訊管理模塊、機床狀態(tài)監(jiān)控模塊、設(shè)備數(shù)據(jù)查詢模塊、設(shè)備故障維修管理模塊和系統(tǒng)資料管理模塊這五大模塊組成,數(shù)據(jù)庫為整個系統(tǒng)提供數(shù)據(jù)支持。
通訊管理模塊和機床狀態(tài)監(jiān)控模塊屬于網(wǎng)絡(luò)化DNC的控制層模塊。通訊管理模塊主要對控制命令及數(shù)控程序進行傳輸和管理。控制命令的傳輸主要是當(dāng)客戶端需要對數(shù)控設(shè)備下達命令時,先從客戶端傳送命令到服務(wù)器端,當(dāng)服務(wù)器端接收到該命令后,利用數(shù)控系統(tǒng)的內(nèi)部命令控制數(shù)控設(shè)備。數(shù)控程序的傳輸是雙向的,可以從客戶端向服務(wù)器端傳輸,也可以將服務(wù)器端的數(shù)控程序傳輸?shù)娇蛻舳恕?/span>
機床狀態(tài)監(jiān)控模塊主要是客戶端對數(shù)控設(shè)備運行狀態(tài)的數(shù)據(jù)采集、控制。此功能模塊的實現(xiàn)可以及時快速地使執(zhí)行層和管理層全面了解設(shè)備狀態(tài)信息和加工操作信息,并合理的做出決策控制。另外機床狀態(tài)監(jiān)控模塊也為企業(yè)生產(chǎn)的統(tǒng)計分析工作提供了重要的數(shù)據(jù)來源。
機床數(shù)據(jù)查詢模塊從數(shù)據(jù)庫中獲取機床狀態(tài)監(jiān)控模塊采集來的數(shù)據(jù),根據(jù)用戶需要將數(shù)據(jù)進行統(tǒng)計分析,生成報表,并完成打印和管理功能。
設(shè)備故障維修管理模塊對設(shè)備維修計劃進行管理、對設(shè)備維修情況進行錄入,并保存在數(shù)據(jù)庫之中。
系統(tǒng)資料管理模塊主要是對數(shù)控設(shè)備資料、參數(shù)資料、部門資料和人員資料進行錄入及日常管理。
2 關(guān)鍵技術(shù)的研究與實現(xiàn)
由于控制命令傳輸?shù)男畔?shù)據(jù)較短,可以一次性的將控制命令傳送給系統(tǒng)的服務(wù)器端,因此控制命令的傳輸相對簡單。只需把控制命令信息轉(zhuǎn)換成二進制數(shù)據(jù)后,在其前后加上特定的標(biāo)識信息,然后發(fā)送給服務(wù)器端。服務(wù)器端辨識到首尾標(biāo)識后按照約定提取二進制數(shù)據(jù)信息,再轉(zhuǎn)換為控制命令控制數(shù)控設(shè)備。
數(shù)控文件的傳輸相對比較復(fù)雜。數(shù)控文件的長度較長,超出了通信鏈路的限制,因此要將數(shù)控文件拆分成若干個數(shù)據(jù)包。在傳輸?shù)臅r候,首先將文件名、文件長度等與文件有關(guān)的相關(guān)信息打成一個包,發(fā)送給服務(wù)器端。服務(wù)器端接收到該信息包后,將收到的信息保存起來并根據(jù)文件名創(chuàng)建對應(yīng)的文件。接下來客戶端將要傳輸?shù)奈募D(zhuǎn)換成二進制數(shù)據(jù),按數(shù)據(jù)包的限定長度將文件分為若干個數(shù)據(jù)塊,再將數(shù)據(jù)塊按一定的格式打成數(shù)據(jù)包,一包一包地發(fā)送給服務(wù)器端。服務(wù)器端將接收來的數(shù)據(jù)包進行拆包,提取數(shù)據(jù)塊信息,保存到對應(yīng)的文件中,直到文件傳輸完成。服務(wù)器端發(fā)送數(shù)據(jù)的方法類似,不再詳述。整個傳輸過程是按照事先規(guī)定好的通信協(xié)議執(zhí)行的,發(fā)送與接收數(shù)據(jù)的流程圖如圖2、圖3所示。
圖2 通訊管理模塊發(fā)送數(shù)據(jù)流程圖
圖3 通訊管理模塊接收數(shù)據(jù)流程圖
考慮到客戶端和服務(wù)器端同時互傳數(shù)據(jù)的情況,為了避免單線程不能及時處理連接請求,系統(tǒng)采用多線程技術(shù)。系統(tǒng)設(shè)置主線程為監(jiān)視線程,負(fù)責(zé)響應(yīng)連接請求。當(dāng)有請求連接時,創(chuàng)建一個新的線程負(fù)責(zé)發(fā)送或接收數(shù)據(jù),這樣便可使兩端同時進行數(shù)據(jù)傳輸,提高傳輸效率。
對數(shù)控程序的管理是MES設(shè)備管理系統(tǒng)中網(wǎng)絡(luò)化DNC的核心功能之一,有效的數(shù)控程序管理,可以保證程序的準(zhǔn)確性,避免事故損壞機床,提高生產(chǎn)效率,達到安全生產(chǎn)的目的。本系統(tǒng)對在生命周期內(nèi)的數(shù)控程序進行內(nèi)部信息管理。數(shù)控程序管理流程圖如圖4所示。
圖4 數(shù)控程序管理流程圖
從程序的生成到程序的消亡,系統(tǒng)對數(shù)控程序有一套嚴(yán)格的管理方法。編程人員首先編輯數(shù)控程序,然后將程序相關(guān)信息填入數(shù)據(jù)庫中作為備份,此狀態(tài)下的數(shù)控程序是不能上傳到數(shù)控系統(tǒng)的。管理人員有權(quán)查看數(shù)控程序,若程序有錯誤,則重新編輯;若程序正確,則可以進行試切。如果試切失敗需返回重新編輯,如果試切成功,管理人員將程序定型,程序一旦定型便無法修改,需要在數(shù)據(jù)庫中更新程序相關(guān)信息,此時的程序可以上傳到數(shù)控系統(tǒng)。數(shù)控程序的相關(guān)信息主要通過數(shù)據(jù)庫進行管理,包括程序號、程序名稱、所加工的零件號、零件圖號、加工工序號、機床信息、程序狀態(tài)等信息。
機床狀態(tài)監(jiān)控功能是網(wǎng)絡(luò)化DNC中不可缺少的一部分,是MES設(shè)備管理的核心內(nèi)容之一。本系統(tǒng)的機床狀態(tài)監(jiān)控主要是通過用于過程控制的OLE技術(shù)實現(xiàn)的。用于過程控制的OLE(OLE for Process Control,OPC)是工控行業(yè)的軟件接口標(biāo)準(zhǔn),它試圖按照標(biāo)準(zhǔn)的方法完成不同設(shè)備之間數(shù)據(jù)的交換。OPC規(guī)范提供了兩套接口方案,即定制化接口和自動化接口。由于OPC的定制化接口效率高,可以使OPC服務(wù)器發(fā)揮其性能,因此系統(tǒng)采用定制化接口。
OPC數(shù)據(jù)訪問可以提供一種通過OPC客戶端讀取和寫入數(shù)控系統(tǒng)特定數(shù)據(jù)的手段。利用OPC技術(shù),機床狀態(tài)監(jiān)控模塊的開發(fā)流程如圖5所示。
圖5 機床狀態(tài)監(jiān)控模塊OPC類模型的開發(fā)流程
在開發(fā)過程中,首先要在工程中包含四個OPC基金會提供的OPC標(biāo)準(zhǔn)庫文件,對開發(fā)環(huán)境進行相關(guān)配置;OPC是基于COM技術(shù)制定的,接著初始化COM庫用以使用其接口類;通過OPC服務(wù)器的ProgID得到其唯一的CLSID;只有當(dāng)用戶連接到OPC服務(wù)器后才能對組對象和項對象進行操作,因此連接OPC服務(wù)器是獲取機床狀態(tài)數(shù)據(jù)的必要過程;應(yīng)用QueryInterface()方法請求IOPCSever接口指針,創(chuàng)建OPC組對象;通過AddItem()添加想要訪問的特定數(shù)據(jù)項;添加數(shù)據(jù)項后,便可獲取機床狀態(tài)數(shù)據(jù)或?qū)C床狀態(tài)進行控制;,需要刪除對象、釋放內(nèi)存,值得一提的是,刪除對象要先刪除項對象,刪除OPC服務(wù)器對象。