實時性是數控係統一項重要的性能指標[1]。在IPC(Industrial Personal Computer )+運動控製器構成的開放式數控係統開發平台上,雖然這種主從(cong) 式結構,確保了運動控製指令在運動控製器內(nei) 高速、實時的被執行,但在PC機上,仍需要完成諸如實時顯示、預處理計算、係統狀態監控等許多任務。為(wei) 了保證係統的實時性能,擬采用多線程技術,通過多任務並行處理的方式,提高係統實時性。
本開發平台采用IPC+運動控製器模式的開放式數控係統,主要的運動控製由固高公司的GT400-SV通用運動控製器完成。它提供C語言函數庫GT400sv.lib和Windows動態連接庫GT400.dll,能夠實現複雜的控製功能[2]。數控係統的開發是將這些控製函數與(yu) 自己控製係統所需的數據處理、界麵顯示、用戶接口等應用程序模塊集成在一起,建造符合特定應用要求的控製係統。
2 進程與(yu) 線程以及多線程技術
Windows操作係統既支持多進程,又支持多線程。一個(ge) 進程就是應用程序的一個(ge) 實例,一次執行過程也就是調入內(nei) 存準備執行的程序,包括當前執行的應用程序的執行代碼和程序執行相關(guan) 的一些環境信息。每個(ge) 進程擁有整台計算機的資源,無須知道其他進程在計算機中的信息。通常每個(ge) 進程至少有一個(ge) 線程在執行所屬地址空間中的代碼,該線程稱為(wei) 主線程。如果該主線程運行結束,係統將自動清除進程及其他地址空間。
線程是進程內(nei) 部執行的路徑,是操作係統分配CPU時間的基本實體(ti) ,是程序運行的最小單位。每個(ge) 進程都由主線程開始進行應用程序的執行。線程由一個(ge) 堆棧、CPU寄存器的狀態和係統調用列表中的一個(ge) 入口組成。每個(ge) 進程可以包含一個(ge) 以上的線程,這些線程可以同時獨立地執行進程地址空間中的代碼,共享進程中的所有資源。
Windows係統分配處理器時間的最小單位是線程,係統不停地在各個(ge) 線程之間切換。在PC機中,同一時間隻有一個(ge) 線程在運行。通常係統為(wei) 每個(ge) 線程劃分的時間片很小(ms級別),這樣快速係統的實時性就有了保障[3]。
要實現多線程編程,可建立輔助線程(worker Thread)和用戶界麵線程(User Interface Thread)。輔助線程主要用來執行數控程序、坐標顯示、動態仿真和數據預處理;用戶界麵線程用來處理用戶的輸入,響應用戶產(chan) 生的事件和消息。
3 數控係統實時性分析
3.1 線程的實時性
數控係統需要完成的任務有很多,這些任務中,優(you) 先級的要求級別不一樣。據此,可以利用Windows係統的多任務、搶占式的特點和多線程技術將各個(ge) 任務分給不同的線程,並賦予各個(ge) 線程不同的優(you) 先級,當高優(you) 先級的線程執行時,即實時性要求高的任務需要執行時,可以自動地終止其他線程的工作轉而執行這一線程[4]。通過這一方法,可以實現數控係統所要求的實時性。
3.2 輔助線程創建
本開發係統中所創建的輔助線程可大致劃分如下:
(1)坐標顯示線程
在手動脈衝(chong) 麵板、電動控製麵板和增量控製麵板中,可實時顯示X、Y、Z三個(ge) 運動軸的坐標。這樣可使操作人員直觀看到三軸的實際坐標。實時性要求較低,所以使用最低優(you) 先級:Lowest Normal。
(2)圖形顯示線程
圖像顯示線程用於(yu) 在動態仿真麵板中執行圖形繪製的指令。通過圖形顯示,操作者可以在動態仿真的同時,對人機界麵進行操作。這一線程實時性要求較低,等級為(wei) :Blow Normal。
(3)IO狀態控製線程
此線程用於(yu) 檢測由係統輸入的各個(ge) 離散量,以及從(cong) 數控程序得到的指令來輸出機床各離散量的狀態。此線程優(you) 先級比前兩(liang) 線程高,等級為(wei) :Normal。
(4)數據預處理線程
數據預處理線程主要負責完成編碼形式轉換、刀具長度補償(chang) 、刀具半徑補償(chang) 和公英製轉換等運動控製數據預處理函數的執行。等級為(wei) :Normal。
(5)運動控製線程
此線程主要用於(yu) 運動控製器執行數控代碼函數的運行。負責向緩衝(chong) 器輸入運動控製命令,清空緩衝(chong) 器和打開關(guan) 閉緩衝(chong) 器等操作。等級稍高:Above Normal。
(6)緊急控製線程
此線程處理一些需要機床立即做出反應的時間,如機床的急停等。優(you) 先級最高,等級為(wei) :Highest。
轉載請注明出處。







相關文章
熱門資訊
精彩導讀



















關注我們

