近年來,開放式的數(shù)控系統(tǒng)在工業(yè)領(lǐng)域得到廣泛應(yīng)用,但目前在世界機床業(yè)中占統(tǒng)治地位的仍是基于專用硬件的數(shù)控系統(tǒng)。這種系統(tǒng)的內(nèi)部細節(jié)一般屬于企業(yè)機密,是不開放的。以Windows和運動控制器構(gòu)建的數(shù)控系統(tǒng)近年得到較大的發(fā)展,但是在數(shù)據(jù)處理的實時性上卻無法滿足數(shù)控加工的要求。因此,本文選擇了這種上、下位機的結(jié)構(gòu),上位機主要分擔加工中的弱實時部分,下位機則負責(zé)強實時部分。在Windows環(huán)境下,利用VC++6.0開發(fā)了數(shù)控軟件,并通過二維繪圖實驗平臺進行了實驗驗證,系統(tǒng)具備了良好的實時性和開放性。
1 系統(tǒng)構(gòu)成及工作過程
Computer為通用PC機,充當系統(tǒng)的上位機,主要承擔數(shù)控加工中的弱實時部分(如:參數(shù)設(shè)置、G代碼編輯與編譯、圖形仿真、狀態(tài)診斷等)。下位機則選用了固高科技(深圳)公司研發(fā)的GT4∞SV型四軸通用運動控制器。該控制器上的DSP充當了下位機的CPU,由于DSP芯片具有很強的數(shù)字信號處理能力,因此,承擔數(shù)控加工中的強實時部分是能夠滿足要求的。
運行在上位PC機中的系統(tǒng)管理軟件是人機交互的媒介。一方面它將系統(tǒng)的各種信息以數(shù)據(jù)或圖形的方式顯示給用戶,另一方面又接收來自用戶輸入的各種數(shù)據(jù)(如:參數(shù)、加工代碼、工件圖形等)。并交由軟件的相關(guān)模塊進行處理,處理后的數(shù)據(jù)被保存在PC內(nèi)存上指定的緩沖區(qū)中。一般來說,運動控制器廠家已在DSP中開發(fā)好了一系列的功能函數(shù),并將它們封裝成一個動態(tài)鏈接庫文件。上位機系統(tǒng)軟件就是通過這個動態(tài)鏈接庫來實現(xiàn)與運動控制器的數(shù)據(jù)交換的。
2 軟件的模塊化設(shè)計思想與實例
2.1 模塊化設(shè)計思想
系統(tǒng)軟件的開發(fā)以Windows 2000為操作系統(tǒng),在VC++6.0開發(fā)環(huán)境中,采用C++語言。結(jié)合MFC、Windows API和GT400SV API來實現(xiàn)。根據(jù)開放式數(shù)控系統(tǒng)的要求與思想。通過類的定義、封裝和繼承技術(shù)來實現(xiàn)模塊化開發(fā)。
圖中越靠近圓心的模塊表示核心度越高,最核心的任務(wù)調(diào)度代表系統(tǒng)的主用戶界面,它負責(zé)整個系統(tǒng)的任務(wù)調(diào)度工作,被分配予應(yīng)用程序的主線程,因此它的產(chǎn)生與銷毀就代表著應(yīng)用程序的生與死。中間環(huán)分為7個子功能模塊,每個子功能模塊又包含著數(shù)目不等的子模塊,各模塊皆由一個單獨的類來進行標識和處理,在這砦類中設(shè)計和封裝了一系列的成員函數(shù)和成員變量,用以完成各個相應(yīng)的子任務(wù)。
模塊間的通信主要通過兩種方式來實現(xiàn),環(huán)狀的同層通信和線狀的越層通信。同層通信負責(zé)同一核心層中各模塊之間的通信工作。第一層主要通過對象和指針操作來實現(xiàn)。第二層主要通過開辟數(shù)據(jù)緩沖區(qū)和創(chuàng)建結(jié)構(gòu)體來實現(xiàn)。越層通信則負責(zé)同一類別不同核心層模塊間的通信工作。所謂同一類別的模塊即是處于同一個扇形域內(nèi)的模塊。主要通過菜單管理和視圖管理來實現(xiàn)。
對于這樣一個同心圓環(huán)結(jié)構(gòu)的模塊化通信框架,任意兩個模塊間可方便地進行通信。當應(yīng)用場合發(fā)生改變,需要修改其中的某個或某幾個模塊時,只需將其單獨抽取出來進行修改。當需要添減系統(tǒng)的模塊時,也無需對代碼做太大的改動,因為某個模塊的改動對其他模塊問的通信并不會造成很大的干擾,增強了系統(tǒng)的可伸縮性。
2.2 主要模塊的分析與實例
考慮到本系統(tǒng)在操作上的一些特點,如:不會同時編輯多個文檔、需要同時顯示多項數(shù)據(jù)、后臺運算與前臺操作必須支持同步等。因此系統(tǒng)軟件采用了單文檔、多視圖和多線程的結(jié)構(gòu)。主程用于處理用戶界面的操作和管理。如:菜單切換、參數(shù)設(shè)置、代碼編輯等。子線程則處理一些純運算性質(zhì)的工作,如:代碼編譯、插補運算、圖形仿真等。
2.2.1 任務(wù)調(diào)度模塊
任務(wù)調(diào)度模塊是系統(tǒng)的主用戶界面。它是操作人員與機器之間進行交流的媒介,~個好的用戶界面能使操作人員心情愉快,并在較短時間內(nèi)通過屏幕上所顯示的信息,了解到機器當前各主要模塊的工作狀態(tài)。本文的人機界面設(shè)計遵循以下原則:①“一致性”,系統(tǒng)的界面外觀、布局、交互方式及顯示格式與市場主流產(chǎn)品相符合,便于操作人員輕易上手。②“信息反饋”,對操作人員的操作能做出及時響應(yīng),通過文本、圖形、聲音等方式。⑧“布局合理”,空間布局應(yīng)合理,豎床加以橫線搭配,尺寸分配適當運用黃金分割比例0.618,顯示表放置于水平視線以下0—30°,垂直視野左右各15°范圍內(nèi)。(緲“合理運用色彩和圖形”,整體界面顏色應(yīng)不超過3-5種,色調(diào)搭配不宜過于刺激或興奮或沉悶,以純度低而明度高為宜。面板上的按鈕顏色按用途分類,如:紅色表示危險、停止和報警;綠色代表正常和安全運行;黑白色代表文字、符號和編碼。⑤“字體、字型合適”,字符的高寬比應(yīng)為2:1或1:1。
主用戶界面由四個視圖、系統(tǒng)菜單和狀態(tài)欄構(gòu)成。圖形顯示區(qū)主要用于實時顯示刀具的運動軌跡;參數(shù)顯示區(qū)主要用于顯示當前系統(tǒng)的若干重要參數(shù)值;系統(tǒng)菜單負責(zé)在各功能模塊間進行切換;實時數(shù)據(jù)顯示區(qū)主要用于實時顯示不同參考下的坐標值;輔助面板為一個虛擬的機床操作面板。通過菜單欄F5可以控制其顯示或消隱;狀態(tài)欄主要用于顯示一些基本信息,如:開發(fā)單位、系統(tǒng)時間、已加工工件數(shù)等。
2.2.2數(shù)據(jù)管理模塊
數(shù)據(jù)管理模塊掌管著整個系統(tǒng)的數(shù)據(jù)流向,通過自定義一個類,專門處理數(shù)據(jù)文件的打開、關(guān)閉、讀取、寫入等動作,并將數(shù)據(jù)按類別保存到一系列的數(shù)據(jù)結(jié)構(gòu)中,這些數(shù)據(jù)結(jié)構(gòu)是文件與用戶界面、模塊與模塊之間進行數(shù)據(jù)交換的容器。
CFileDeal類中定義了一系列的成員函數(shù)和成員變量,他們的作用主要是針對數(shù)據(jù)文件進行操作。白箭頭表示讀入,CFileDeaf類將數(shù)據(jù)從文件中讀取出來,并通過自己在C)(x.App類中的一個對象將數(shù)據(jù)加載到指定的數(shù)據(jù)結(jié)構(gòu)StructData中,當某個模塊需要使用這些數(shù)據(jù)時,它的關(guān)聯(lián)類C×X便通過一個指向CXX.App的指針pApp調(diào)用Struct Data的一個對象來對Struct Data進行操作,將數(shù)據(jù)提取出來,并在特定的成員函數(shù)里引用這些數(shù)據(jù)進行運算處理,處理后的數(shù)據(jù)或顯示到視圖面板中或發(fā)送到另一個數(shù)據(jù)結(jié)構(gòu)中保存起來。黑色箭頭則表示了數(shù)據(jù)的存儲過程。
2.2.3通信模塊
通信模塊包括系統(tǒng)上、下位機間的通信和系統(tǒng)間的網(wǎng)絡(luò)通信,其中最重要的是系統(tǒng)軟件與運動控制器間的通信。本文定義和封裝了一個類CCardFunc,結(jié)合運動控制器的API函數(shù)來編寫各成員函數(shù),用于處理所有與運動控制器發(fā)生交互的工作。
2.2.4 狀態(tài)診斷模塊
狀態(tài)診斷模塊中最核心的部分是錯誤診斷機制。一個良好的錯誤診斷機制能夠在系統(tǒng)軟件發(fā)生錯誤時,迅速定位到錯誤發(fā)生處。本文考慮到錯誤可能會出現(xiàn)在任一核心層下的任一模塊中,因此將錯誤診斷機制設(shè)定為全局函數(shù)。例如可以采用如下形式來定義。
在編寫關(guān)鍵功能模塊的代碼時,可為某些關(guān)鍵函數(shù)的調(diào)用定義一個狀態(tài)返回值,并隨后調(diào)用該錯誤診斷機制.雖然這樣做會加大代碼編寫的工作量,但卻可以在錯誤發(fā)生時大大地減少錯誤排除的工作時間,提高工作效率。
3 結(jié)束語
本文介紹了一種基于PC機與運動控制器構(gòu)建的開放式數(shù)控系統(tǒng),描述了這種系統(tǒng)的基本構(gòu)成及工作原理,及系統(tǒng)軟件設(shè)計上的若干關(guān)鍵問題。為了驗證系統(tǒng)的實際運行性能,將一臺二維繪圖實驗平臺接入系統(tǒng),并對其進行了自動運行、手動運行、點位控制及多種速度規(guī)劃模式下的實驗。繪制的圖形輪廓完整、數(shù)據(jù)的反饋和試驗臺的響應(yīng)迅速。
(審核編輯: 智匯胡妮)
分享