在YF-D160160數(shù)控雕銑機的數(shù)控系統(tǒng)軟件中,采用了前后臺型的多線程結構形式。前臺程序是一個實時中斷服務程序承擔了幾乎全部的實時功能,實現(xiàn)與機床動作直接相關的功能。前臺程序由系統(tǒng)主線程和定時器控制,主要完成界面管理、功能控制、系統(tǒng)管理等,并負責響應按鍵與界面輸入的數(shù)據(jù),即實現(xiàn)管理層的功能。后臺程序是一個循環(huán)執(zhí)行程序,承擔一些實時性能不高的功能如輸入,譯碼,數(shù)據(jù)處理等插補準備工作。后臺程序放在輔助線程中,負責進行數(shù)控代碼的編譯處理,向PMAC發(fā)送命令以及實時數(shù)據(jù)采集,實現(xiàn)了控制層的功能。在后臺程序循環(huán)運行的過程中,前臺的實時中斷程序不斷地定時插入,二者密切配合,共同完成零件的加工任務。
Windows CE是微軟公司開發(fā)的一個開放、可升級的32位嵌入式操作系統(tǒng)。Windows CE具有模塊化、結構化和基于Win32應用程序接口以及與處理器無關等特點。相對于DOS,Windows CE .NET是運行于保護模式的多線程32位操作系統(tǒng),特別適合數(shù)控系統(tǒng)的多任務并行機制,而它的內(nèi)存保護功能對于數(shù)控系統(tǒng)的穩(wěn)定性具有重要意義。相對Windows桌面操作系統(tǒng),WindowsCE.NET是嵌入式實時操作系統(tǒng),其獨特體系結構和運行機制使其能夠快速響應外部中斷觸發(fā),并調(diào)度相關應用程序進行處理,因此它可以滿足數(shù)控系統(tǒng)的實時性要求。
在已有的同類數(shù)控系統(tǒng)中,大多數(shù)系統(tǒng)是基于DOS環(huán)境的,其綜合性能相對于Windows環(huán)境就弱一些,尤其是人機交互界面、多任務以及開放性方面比較差。主從計算機間的實時信息交換通訊是實現(xiàn)上下位機間協(xié)調(diào)工作的關鍵。YF-D160160數(shù)控雕銑機的數(shù)控系統(tǒng)在實時性要求方面與機器人控制相似,如果使用Windows中專用的定時器控件Timer,雖然使用很方便,可以實現(xiàn)一定的定時功能,但最小計時精度僅為55ms,且定時器消息在多任務操作系統(tǒng)中的優(yōu)先級很低,不能得到及時響應,無法滿足實時控制環(huán)境下的應用。所以考慮使用精度更高的多媒體定時器,它可以實現(xiàn)精度為1ms的高精度定時,可以滿足YF-D160160數(shù)控雕銑機的數(shù)控系統(tǒng)的實時性要求。多媒體定時器不依賴于消息機制,而是由函數(shù)TimerSetEvent()產(chǎn)生一個獨立的線程,在一定的中斷次數(shù)到達后,直接調(diào)用預先設置好的回調(diào)函數(shù)進行處理,而不必等到應用程序的消息隊列為空。因而設置該回調(diào)函數(shù)來完成周期掃描I/O卡的輸入端口,以及向系統(tǒng)定時發(fā)送消息,使其及時更新界面和界面中的數(shù)據(jù)。為提高系統(tǒng)的可靠性,多媒體定時器在整個控制程序初始化時開啟,并在系統(tǒng)退出時刪除定時器以釋放系統(tǒng)資源。每一個Windows應用程序都是一個進程,并由線程來負責執(zhí)行包含在進程地址空間中的代碼。實際上,每個進程可以擁有多個線程,它們在進程的地址空間中“同時地”執(zhí)行代碼。