摘要:Windows XP是一種弱實時操作系統,支持基于線程的占先式多任務機制,還擁有強大的網絡通訊功能和較強的穩定性。通過其實現多任務并行處理以及實時處理來實現數控加工對系統的要求。
關鍵詞:并行處理 實時處理 中斷 實時系統
隨著Windows系統的發展與普及,開發Windows環境下的數控系統己經成為廣大CNC系統開發商和CNC用戶的共識。近年來,國內已有不少廠家開發出了基于DOS的數控系統。這些控制系統雖各有優點,但從數控系統發展的趨勢來看,仍有許多需要改進之處:首先,系統軟件沒有構筑在Windows等通用操作系統平臺上:其次,軟件開發思想與技術落后,還處于結構化程序設計的水平,沒有充分利用軟件工程中的新理論和新技術;再次,數控系統設計時存在設計不規范,沒有采用統一的數控系統體系結構規范協議,系統的互換性、可擴展性和可維護性差。本數控系統是一個多任務的計算機實時控制系統。
而基于PC的開放式數控系統由于構筑在通用的軟硬件平臺基礎上可以融合許多軟件技術中的先進思想,其開放性使得在它的控制軟件比較突出的就是多任務并行處理和實時控制。編程選用VC++6.0,VC++6.0一種面向對象的可視化編程語言,提供了功能豐富的MFC (微軟基礎類庫)供開發應用軟件時調用。
1 多任務并行處理
Windows XP是一個多任務的系統,多任務是指Windows XP可以同時執行幾個任務,它可以在還未執行完一個任務時又執行另一項任務。在一個多任務處理環境下,只有當其它程序認可時,一個運行程序才可獲得處理機時間。每一個應用程序必須協同地放棄對處理器的控制,以便其它應用程序運行。并行性指的是兩個或兩個以上的事件或活動在同一時刻發生。在多道程序環境下,并行性使多個程序同一時刻可在不同CPU上同時執行。主要有時間重疊、資源重復、資源共享三種形式。
從執行程序的角度看,并行性等級從低到高可分為:
①指令內部并行:是指指令內部的微操作之間的并行。
②指令級并行(Instruction Level Parallel,ILP):兩條或多條指令同時執行,就是指令之間的并行。
③線程級并行:指的是并發執行多個線程,通常是以一個進程內控制派生的多個線程為調度單位。
④任務級或過程級并行:并行執行兩個或多個過程或任務(程序段)。
⑤作業或程序級并行:多個作業或程序間的并行處理。
在單處理機系統中,這種并行性升到某一級別后(如任務、作業級并行),則要通過軟件(如中的進程管理、作業管理)來實現。而在多處理機系統中,由于已有了完成各個任務或作業的處理機,其并行性是由硬件來實現的。
數控車銑系統裝置通常作為一個獨立的過程控制單元用于工業自動化的生產過程中,其系統軟件應該完成管理功能和控制功能。管理功能部分包括輸入、I/0處理、顯示和診斷等;控制功能部分則包括譯碼、刀具補償、速度處理、插補運算和位控等。在CNC系統的實際運行過程中,常常有若干個任務需要同時進行。為了使數控車銑系統軟件能在Windows環境下執行多任務處理,可采用多線程技術來實現多任務控制.線程是操作系統的基本調度單元,將各管理和控制模塊置于獨立的線程中,操作系統按優先級的高低依次給每個線程分配時間片,同時,每個線程的優先級可以動態的調節,實時性要求高的線程,其優先級可以設置得高一些。
這樣,從理論上講,微觀上每個時刻只有一個線程(即任務)在執行,每個任務都有機會得到系統時間片;而宏觀上卻有多個任務在同時執行,任務的執行順序與其優先級有關。本數控軟件中建立了主控制線程、運動控制線程、顯示/面板操作線程、自動加工線程等。
2 實時處理
實時系統主要用于過程控制、事務處理等有實時要求的領域。實時處理系統往往是一個由多臺計算機組成的耦合度較高的分布式處理系統。它的目標是為了提高系統的響應時間,對隨機發生的外部事件做出及時響應并對其進行處理。
它分為:實時控制系統、實時信息處理系統。實時控制系統是指當外界事件或數據產生時,能夠接受并以足夠快的速度予以處理,其處理的結果又能在規定的時間之內來控制生產過程或對處理系統作出快速響應,并控制所有實時任務協調一致運行的操作系統。主要用于生產過程的自動控制,實驗數據自動采集,包括衛星自動控制、汽車自動駕駛、導彈的制導系統等等。
實時信息處理系統將數據獲取、處理和成果輸出集為一體,快速而及時完成的數據處理系統。主要用于實時信息處理,比如火車訂票系統、信息檢索系統等等。實時系統要求響應時間短,在一定范圍之內,系統可靠性高。采用實時系統的意義就在于能夠及時處理各種突發的事件,即處理各種中斷,主要就是多任務調度,任務間的同步和進程間通信機制。數控車銑系統軟件在工業自動化的實際應用中,為了滿足生產實際和工藝設計的要求,這就要求數控車銑軟件必須具有實時性,為了達到這一目的我們必須采用中斷的方式對實時性強的任務進行控制。由于中斷發生的隨機性,所以中斷服務程序必須在固定代碼段中。
而Windows XP是一種占先式的多任務操作系統,其消息隊列是接受程序的唯一方法,因此應用程序的調用就可以通過消息循環機制從應用程序消息隊列中獲取輸入消息,并把它發送給相應的窗口,然后對該消息內容進行處理。從理論上講用戶的鍵盤、鼠標及定時器輸入都是硬件中斷,這就需要系統提供為設備驅動的中斷服務程序。在EMS內存配置中,只有一種類型的代碼能保證任何時刻可進行此類中斷服務,那就是微軟公司在微軟視窗操作系統中實現共享函數庫概念的動態連接庫(Dynamic Link Library,簡稱DLL)中的固定代碼段中的代碼。因此可采用DLL來實現中斷。當程序執行時,利用鏈接信息加載DLL函數代碼并在內存中將其鏈接入調用程序的執行空間中,實現了系統的硬件中斷,運行可靠。在軟件設計中自動加工線程主要完成打開數控(Numerical Control 簡稱:NC)文件、語法檢查、譯碼、刀具補償、插補運算,產生加工數據。其中插補運算是必須要求實時完成的,因而采用中斷服務程序來實現。其中斷服務程序流程如圖1所示。
3 結語
在軟件設計的時候,考慮到系統的可擴展性,利用面向對象的思考方式,開放式、模塊化軟件設計方案,達到軟件的開放性和易于擴展性,可以提高軟件的通用性,有利于軟件的進一步升級;利用Windows的多線程和中斷機制解決數控軟件的實時多任務處理,提高了軟件的實用性,有利于數控車銑系統的性能提高。本數控軟件中建立了主控制線程、運動控制線程、顯示/面板操作線程、自動加工線程等,提高了軟件在實時性方面的需求,同時采用中斷的方式對實時性強的任務進行控制,滿足了生產和工藝的要求,有利于數控車銑系統的進一步改進和升級。
參考文獻:
[1]韓雪松.基于Windows的車床微機數控系統研究.裝備制造技術,2006,(4),29-30.
[2]李劍鋒.基于PC的開放式數控系統研究.機械工程師,2005,(12),71-73.
注:本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文