武 俊 瞿 中
摘要本文從軟件設(shè)計(jì)的角度,提出了一種可重構(gòu)的DNC管理系統(tǒng)的設(shè)計(jì)方法,并采用面向?qū)ο蟮慕y(tǒng)一建模語(yǔ)言(UML)對(duì)系統(tǒng)進(jìn)行了設(shè)計(jì)與開發(fā)。
關(guān)鍵詞可重構(gòu)DNCUML
分布式數(shù)控(DistributedNumeri-calControl,簡(jiǎn)稱DNC),是指一臺(tái)或多臺(tái)計(jì)算機(jī)對(duì)多臺(tái)CNC機(jī)床實(shí)施綜合數(shù)字監(jiān)控。隨著網(wǎng)絡(luò)技術(shù)和軟件技術(shù)的發(fā)展,如何對(duì)加工過(guò)程的實(shí)時(shí)情況進(jìn)行有效的監(jiān)控,對(duì)加工資源進(jìn)行統(tǒng)一的管理,已經(jīng)成為現(xiàn)代企業(yè)實(shí)現(xiàn)制造自動(dòng)化的關(guān)鍵技術(shù)之一。可重構(gòu)性是軟件的關(guān)鍵性能之一,它是指軟件不需要經(jīng)過(guò)重新的開發(fā)、編譯,而僅僅通過(guò)配置文件的簡(jiǎn)單修改,來(lái)適應(yīng)系統(tǒng)需求以及外部環(huán)境的變化。統(tǒng)一建模語(yǔ)言(UnifiedModelingLanguage,簡(jiǎn)稱UML)具有良好的定義形式、易于表達(dá)、功能強(qiáng)大,全面體現(xiàn)了面向?qū)ο蟮脑O(shè)計(jì)思想,其作用域不僅支持面向?qū)ο蟮姆治雠c設(shè)計(jì),還支持從需求分析開始的軟件開發(fā)全過(guò)程,從而使系統(tǒng)的開發(fā)標(biāo)準(zhǔn)化。
1系統(tǒng)分析
系統(tǒng)在登錄時(shí)對(duì)用戶的權(quán)限進(jìn)行驗(yàn)證從而呈現(xiàn)給用戶相應(yīng)的操作界面。普通員工僅能對(duì)本車間的機(jī)床信息和數(shù)控程序信息進(jìn)行查詢;CAD/CAM設(shè)計(jì)人員管理自己的設(shè)計(jì)任務(wù),包括創(chuàng)建、申請(qǐng)、上傳、下載、修改數(shù)控程序;車間管理員管理本車間的機(jī)床和員工等各種資源,包括添加刪除機(jī)床和員工、設(shè)置機(jī)床通信參數(shù)、監(jiān)控機(jī)床實(shí)時(shí)狀態(tài)等;系統(tǒng)管理員管理各個(gè)車間的總體信息,包括添加刪除車間、設(shè)置車間管理員等,并有權(quán)管理系統(tǒng)日志以及系統(tǒng)數(shù)據(jù)庫(kù)的備份和還原。此外,系統(tǒng)能夠自動(dòng)監(jiān)控機(jī)床的開關(guān)機(jī)狀態(tài)、實(shí)時(shí)運(yùn)行情況,并能按設(shè)定的頻率把各個(gè)車間服務(wù)器上的數(shù)據(jù)整合到主服務(wù)器。
2系統(tǒng)設(shè)計(jì)
2.1體系結(jié)構(gòu)設(shè)計(jì)
現(xiàn)代制造企業(yè)面對(duì)的是一個(gè)多變的需求環(huán)境,因而制造系統(tǒng)面對(duì)的加工環(huán)境、加工任務(wù)也是多變的。這就要求DNC管理系統(tǒng)體系結(jié)構(gòu)應(yīng)具有開放性和可重構(gòu)性,為此構(gòu)建如圖1所示的系統(tǒng)體系結(jié)構(gòu)。此體系結(jié)構(gòu)分為四層,底層是系統(tǒng)支持層,為系統(tǒng)提供硬件通信平臺(tái)、驅(qū)動(dòng)程序、網(wǎng)絡(luò)設(shè)備及操作系統(tǒng)的系統(tǒng)級(jí)支持;在此之上是數(shù)據(jù)層,為系統(tǒng)提供分布式的數(shù)據(jù)庫(kù)服務(wù)以及數(shù)據(jù)訪問(wèn)服務(wù);再上一層是業(yè)務(wù)邏輯層,該層對(duì)系統(tǒng)的業(yè)務(wù)邏輯進(jìn)行描述,并通過(guò)編寫的類庫(kù)對(duì)業(yè)務(wù)邏輯進(jìn)行處理;最頂層是應(yīng)用層,該層和業(yè)務(wù)邏輯層接口,調(diào)用業(yè)務(wù)類庫(kù),并對(duì)用戶展現(xiàn)操作界面。
2.2系統(tǒng)通信設(shè)計(jì)
為了使DNC管理系統(tǒng)能實(shí)時(shí)有效地監(jiān)控CNC機(jī)床,本文采用局域網(wǎng)技術(shù)與串口通信技術(shù)相結(jié)合的方法來(lái)搭建系統(tǒng)硬件通信平臺(tái),如圖2所示。
該硬件通信平臺(tái)結(jié)構(gòu)的特點(diǎn):(1)DNC管理系統(tǒng)與CNC機(jī)床控制器之間通信通過(guò)一個(gè)自制的智能終端ECl04-33進(jìn)行。該智能終端與CNC機(jī)床的控制器之間通過(guò)RS-232串口線與機(jī)床進(jìn)行通信。(2)智能終端能夠設(shè)定自己的IP地址(以此作為機(jī)床的IP地址),并通過(guò)Intranet企業(yè)內(nèi)網(wǎng)同運(yùn)行DNC管理系統(tǒng)的車間服務(wù)器進(jìn)行通信。(3)智能終端作為DNC管理系統(tǒng)和CNC機(jī)床控制器之間的通信橋梁,把設(shè)計(jì)人員通過(guò)DNC管理系統(tǒng)上傳到車間服務(wù)器上的數(shù)控程序下載到機(jī)床上執(zhí)行;同時(shí)也把機(jī)床的當(dāng)前狀態(tài)以日志文件的方式寫入車間服務(wù)器,便于DNC管理系統(tǒng)讀取和顯示。
2.3可重構(gòu)性設(shè)計(jì)
可重構(gòu)DNC管理系統(tǒng)具有三層含義。
第一層含義為:當(dāng)制造系統(tǒng)或制造單元中的CNC機(jī)床數(shù)量增力口或減少時(shí),通過(guò)對(duì)DNC管理系統(tǒng)添加或刪除實(shí)時(shí)監(jiān)控CNC機(jī)床的數(shù)量來(lái)適應(yīng)制造系統(tǒng)的重構(gòu);
第二層含義為:當(dāng)DNC管理系統(tǒng)中添加不同類型的CNC機(jī)床時(shí),計(jì)算機(jī)與CNC機(jī)床控制器進(jìn)行報(bào)文傳輸?shù)耐ㄐ艆f(xié)議必須可重配置;
第三層含義為:當(dāng)數(shù)據(jù)庫(kù)的類型發(fā)生變化時(shí),能夠通過(guò)管理系統(tǒng)配置文件的更改進(jìn)行重新配置。如果更進(jìn)一步,則要求系統(tǒng)上層應(yīng)用能夠屏蔽底層數(shù)據(jù)庫(kù)由于類型的差別而帶來(lái)的影響。
從可重構(gòu)DNC管理系統(tǒng)含義可知,實(shí)現(xiàn)該系統(tǒng)的可重構(gòu)性實(shí)質(zhì)上是實(shí)現(xiàn)系統(tǒng)體系結(jié)構(gòu)中數(shù)據(jù)層的可重構(gòu)性。
(1)數(shù)據(jù)庫(kù)設(shè)計(jì)??芍貥?gòu)DNC數(shù)據(jù)庫(kù)必須包含CNC機(jī)床和通信協(xié)議信息,為此建立3張數(shù)據(jù)庫(kù)表。CNC機(jī)床——物理層協(xié)議數(shù)據(jù)表由以下基本字段構(gòu)成:CNC機(jī)床序列號(hào)、CNC機(jī)床名稱、通信串口編號(hào)、傳輸波特率、奇偶校驗(yàn)、傳輸數(shù)據(jù)位、停止位、控制流、傳輸模式、緩沖區(qū)字節(jié)、傳輸數(shù)據(jù)類型;CNC機(jī)床一一數(shù)據(jù)鏈路層協(xié)議數(shù)據(jù)表中字段為:CNC機(jī)床序列號(hào)、CNC機(jī)床名稱、數(shù)據(jù)鏈路層協(xié)議;CNC機(jī)床--DNC層協(xié)議數(shù)據(jù)表中字段為:CNC機(jī)床名稱、DNC控制指令描述。第1、2張表的主關(guān)鍵字為機(jī)床序列號(hào),第3張表的主關(guān)鍵字為CNC機(jī)床名稱,三張表通過(guò)CNC機(jī)床名稱字段建立關(guān)系。進(jìn)行DNC系統(tǒng)重構(gòu)時(shí),實(shí)質(zhì)上是對(duì)可重構(gòu)DNC數(shù)據(jù)庫(kù)進(jìn)行操作。
(2)數(shù)據(jù)訪問(wèn)層設(shè)計(jì)。為了屏蔽底層數(shù)據(jù)庫(kù)類型對(duì)上層應(yīng)用的影響,在數(shù)據(jù)訪問(wèn)層的設(shè)計(jì)上采用工廠方法模式。采用工廠方法模式能夠很好地消除底層數(shù)據(jù)庫(kù)變更對(duì)上層應(yīng)用的影響,達(dá)到可重構(gòu)的目的。
2.4線程設(shè)計(jì)
由系統(tǒng)分析可知,系統(tǒng)需要自動(dòng)完成以下功能:監(jiān)測(cè)機(jī)床的開關(guān)機(jī)時(shí)間以統(tǒng)計(jì)機(jī)床的使用情況;實(shí)時(shí)顯示機(jī)床的運(yùn)行狀況以對(duì)機(jī)床進(jìn)行有效的監(jiān)控;定時(shí)備份車間數(shù)據(jù)庫(kù)上的數(shù)據(jù)到主服務(wù)器上。因此系統(tǒng)除了需要一個(gè)主線程來(lái)處理用戶操作外,還需要三個(gè)輔助線程函數(shù)來(lái)完成上述三個(gè)功能。
(1)bool MachineOFMonitor(string shopid);
(2)bool MachineStatusMonitor(String shopid);
(3)bool DatabaseBackup(stringshopid)。
3系統(tǒng)實(shí)現(xiàn)
在系統(tǒng)設(shè)計(jì)基礎(chǔ)上,進(jìn)行了可重構(gòu)DNC管理系統(tǒng)的開發(fā)。系統(tǒng)的硬件通信平臺(tái)采用Visual C++進(jìn)行開發(fā),便于調(diào)用Win32通信I/O的API同數(shù)控機(jī)床進(jìn)行通信。系統(tǒng)的軟件平臺(tái)采用B/S結(jié)構(gòu),在Win-dowsX平臺(tái)下,采用VisualStudio.Net框架進(jìn)行開發(fā),便于用戶操作,也便于系統(tǒng)發(fā)布和更新。在用戶視圖中,本車間各臺(tái)機(jī)床的運(yùn)行情況以列表的方式列出,并以不同的顏色標(biāo)示不同的狀態(tài)。視圖定時(shí)刷新以監(jiān)控機(jī)床的實(shí)時(shí)狀態(tài)。刷新時(shí)間可以由用戶自行設(shè)定。
UML語(yǔ)言的使用范圍不僅限于支持面向?qū)ο笙到y(tǒng)的分析與設(shè)計(jì),還支持從需求規(guī)格描述開始的軟件開發(fā)全過(guò)程。要做到軟件從建模開發(fā)、測(cè)試、模擬、完成的全過(guò)程,需要進(jìn)一步研究解決與軟件體系結(jié)構(gòu)相關(guān)的代碼產(chǎn)生工具及軟件系統(tǒng)結(jié)構(gòu)分析工具,以及UML集成化支持環(huán)境、集成化過(guò)程工種環(huán)境和集成化系統(tǒng)工作環(huán)境和集成。將設(shè)計(jì)模式應(yīng)用到軟件開發(fā)中能大幅提高開發(fā)的效率。