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