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