武 俊 瞿 中
摘要本文從軟件設計的角度,提出了一種可重構的DNC管理系統的設計方法,并采用面向對象的統一建模語言(UML)對系統進行了設計與開發。
關鍵詞可重構DNCUML
分布式數控(DistributedNumeri-calControl,簡稱DNC),是指一臺或多臺計算機對多臺CNC機床實施綜合數字監控。隨著網絡技術和軟件技術的發展,如何對加工過程的實時情況進行有效的監控,對加工資源進行統一的管理,已經成為現代企業實現制造自動化的關鍵技術之一。可重構性是軟件的關鍵性能之一,它是指軟件不需要經過重新的開發、編譯,而僅僅通過配置文件的簡單修改,來適應系統需求以及外部環境的變化。統一建模語言(UnifiedModelingLanguage,簡稱UML)具有良好的定義形式、易于表達、功能強大,全面體現了面向對象的設計思想,其作用域不僅支持面向對象的分析與設計,還支持從需求分析開始的軟件開發全過程,從而使系統的開發標準化。

1系統分析
系統在登錄時對用戶的權限進行驗證從而呈現給用戶相應的操作界面。普通員工僅能對本車間的機床信息和數控程序信息進行查詢;CAD/CAM設計人員管理自己的設計任務,包括創建、申請、上傳、下載、修改數控程序;車間管理員管理本車間的機床和員工等各種資源,包括添加刪除機床和員工、設置機床通信參數、監控機床實時狀態等;系統管理員管理各個車間的總體信息,包括添加刪除車間、設置車間管理員等,并有權管理系統日志以及系統數據庫的備份和還原。此外,系統能夠自動監控機床的開關機狀態、實時運行情況,并能按設定的頻率把各個車間服務器上的數據整合到主服務器。
2系統設計
2.1體系結構設計
現代制造企業面對的是一個多變的需求環境,因而制造系統面對的加工環境、加工任務也是多變的。這就要求DNC管理系統體系結構應具有開放性和可重構性,為此構建如圖1所示的系統體系結構。此體系結構分為四層,底層是系統支持層,為系統提供硬件通信平臺、驅動程序、網絡設備及操作系統的系統級支持;在此之上是數據層,為系統提供分布式的數據庫服務以及數據訪問服務;再上一層是業務邏輯層,該層對系統的業務邏輯進行描述,并通過編寫的類庫對業務邏輯進行處理;最頂層是應用層,該層和業務邏輯層接口,調用業務類庫,并對用戶展現操作界面。
2.2系統通信設計
為了使DNC管理系統能實時有效地監控CNC機床,本文采用局域網技術與串口通信技術相結合的方法來搭建系統硬件通信平臺,如圖2所示。
該硬件通信平臺結構的特點:(1)DNC管理系統與CNC機床控制器之間通信通過一個自制的智能終端ECl04-33進行。該智能終端與CNC機床的控制器之間通過RS-232串口線與機床進行通信。(2)智能終端能夠設定自己的IP地址(以此作為機床的IP地址),并通過Intranet企業內網同運行DNC管理系統的車間服務器進行通信。(3)智能終端作為DNC管理系統和CNC機床控制器之間的通信橋梁,把設計人員通過DNC管理系統上傳到車間服務器上的數控程序下載到機床上執行;同時也把機床的當前狀態以日志文件的方式寫入車間服務器,便于DNC管理系統讀取和顯示。
2.3可重構性設計
可重構DNC管理系統具有三層含義。
第一層含義為:當制造系統或制造單元中的CNC機床數量增力口或減少時,通過對DNC管理系統添加或刪除實時監控CNC機床的數量來適應制造系統的重構;
第二層含義為:當DNC管理系統中添加不同類型的CNC機床時,計算機與CNC機床控制器進行報文傳輸的通信協議必須可重配置;
第三層含義為:當數據庫的類型發生變化時,能夠通過管理系統配置文件的更改進行重新配置。如果更進一步,則要求系統上層應用能夠屏蔽底層數據庫由于類型的差別而帶來的影響。
從可重構DNC管理系統含義可知,實現該系統的可重構性實質上是實現系統體系結構中數據層的可重構性。
(1)數據庫設計。可重構DNC數據庫必須包含CNC機床和通信協議信息,為此建立3張數據庫表。CNC機床——物理層協議數據表由以下基本字段構成:CNC機床序列號、CNC機床名稱、通信串口編號、傳輸波特率、奇偶校驗、傳輸數據位、停止位、控制流、傳輸模式、緩沖區字節、傳輸數據類型;CNC機床一一數據鏈路層協議數據表中字段為:CNC機床序列號、CNC機床名稱、數據鏈路層協議;CNC機床--DNC層協議數據表中字段為:CNC機床名稱、DNC控制指令描述。第1、2張表的主關鍵字為機床序列號,第3張表的主關鍵字為CNC機床名稱,三張表通過CNC機床名稱字段建立關系。進行DNC系統重構時,實質上是對可重構DNC數據庫進行操作。
(2)數據訪問層設計。為了屏蔽底層數據庫類型對上層應用的影響,在數據訪問層的設計上采用工廠方法模式。采用工廠方法模式能夠很好地消除底層數據庫變更對上層應用的影響,達到可重構的目的。

2.4線程設計
由系統分析可知,系統需要自動完成以下功能:監測機床的開關機時間以統計機床的使用情況;實時顯示機床的運行狀況以對機床進行有效的監控;定時備份車間數據庫上的數據到主服務器上。因此系統除了需要一個主線程來處理用戶操作外,還需要三個輔助線程函數來完成上述三個功能。
(1)bool MachineOFMonitor(string shopid);
(2)bool MachineStatusMonitor(String shopid);
(3)bool DatabaseBackup(stringshopid)。
3系統實現
在系統設計基礎上,進行了可重構DNC管理系統的開發。系統的硬件通信平臺采用Visual C++進行開發,便于調用Win32通信I/O的API同數控機床進行通信。系統的軟件平臺采用B/S結構,在Win-dowsX平臺下,采用VisualStudio.Net框架進行開發,便于用戶操作,也便于系統發布和更新。在用戶視圖中,本車間各臺機床的運行情況以列表的方式列出,并以不同的顏色標示不同的狀態。視圖定時刷新以監控機床的實時狀態。刷新時間可以由用戶自行設定。
UML語言的使用范圍不僅限于支持面向對象系統的分析與設計,還支持從需求規格描述開始的軟件開發全過程。要做到軟件從建模開發、測試、模擬、完成的全過程,需要進一步研究解決與軟件體系結構相關的代碼產生工具及軟件系統結構分析工具,以及UML集成化支持環境、集成化過程工種環境和集成化系統工作環境和集成。將設計模式應用到軟件開發中能大幅提高開發的效率。