閱讀 | 訂閱
閱讀 | 訂閱
數(shù)控機(jī)床

多線程技術(shù)在數(shù)控系統(tǒng)實(shí)時性能的應(yīng)用

星之球激光 來源:中電網(wǎng)2012-01-13 我要評論(0 )   

實(shí)時性是數(shù)控系統(tǒng)一項(xiàng)重要的性能指標(biāo)[1]。在IPC(Industrial Personal Computer )+運(yùn)動控制器構(gòu)成的開放式數(shù)控系統(tǒng)開發(fā)平臺上,雖然這種主從式結(jié)構(gòu),確保了運(yùn)動控制指令...



實(shí)時性是數(shù)控系統(tǒng)一項(xiàng)重要的性能指標(biāo)[1]。在IPC(Industrial Personal Computer )+運(yùn)動控制器構(gòu)成的開放式數(shù)控系統(tǒng)開發(fā)平臺上,雖然這種主從式結(jié)構(gòu),確保了運(yùn)動控制指令在運(yùn)動控制器內(nèi)高速、實(shí)時的被執(zhí)行,但在PC機(jī)上,仍需要完成諸如實(shí)時顯示、預(yù)處理計(jì)算、系統(tǒng)狀態(tài)監(jiān)控等許多任務(wù)。為了保證系統(tǒng)的實(shí)時性能,擬采用多線程技術(shù),通過多任務(wù)并行處理的方式,提高系統(tǒng)實(shí)時性。
  
本開發(fā)平臺采用IPC+運(yùn)動控制器模式的開放式數(shù)控系統(tǒng),主要的運(yùn)動控制由固高公司的GT400-SV通用運(yùn)動控制器完成。它提供C語言函數(shù)庫GT400sv.lib和Windows動態(tài)連接庫GT400.dll,能夠?qū)崿F(xiàn)復(fù)雜的控制功能[2]。數(shù)控系統(tǒng)的開發(fā)是將這些控制函數(shù)與自己控制系統(tǒng)所需的數(shù)據(jù)處理、界面顯示、用戶接口等應(yīng)用程序模塊集成在一起,建造符合特定應(yīng)用要求的控制系統(tǒng)。

2 進(jìn)程與線程以及多線程技術(shù)
  
Windows操作系統(tǒng)既支持多進(jìn)程,又支持多線程。一個進(jìn)程就是應(yīng)用程序的一個實(shí)例,一次執(zhí)行過程也就是調(diào)入內(nèi)存準(zhǔn)備執(zhí)行的程序,包括當(dāng)前執(zhí)行的應(yīng)用程序的執(zhí)行代碼和程序執(zhí)行相關(guān)的一些環(huán)境信息。每個進(jìn)程擁有整臺計(jì)算機(jī)的資源,無須知道其他進(jìn)程在計(jì)算機(jī)中的信息。通常每個進(jìn)程至少有一個線程在執(zhí)行所屬地址空間中的代碼,該線程稱為主線程。如果該主線程運(yùn)行結(jié)束,系統(tǒng)將自動清除進(jìn)程及其他地址空間。
  
線程是進(jìn)程內(nèi)部執(zhí)行的路徑,是操作系統(tǒng)分配CPU時間的基本實(shí)體,是程序運(yùn)行的最小單位。每個進(jìn)程都由主線程開始進(jìn)行應(yīng)用程序的執(zhí)行。線程由一個堆棧、CPU寄存器的狀態(tài)和系統(tǒng)調(diào)用列表中的一個入口組成。每個進(jìn)程可以包含一個以上的線程,這些線程可以同時獨(dú)立地執(zhí)行進(jìn)程地址空間中的代碼,共享進(jìn)程中的所有資源。
  
Windows系統(tǒng)分配處理器時間的最小單位是線程,系統(tǒng)不停地在各個線程之間切換。在PC機(jī)中,同一時間只有一個線程在運(yùn)行。通常系統(tǒng)為每個線程劃分的時間片很小(ms級別),這樣快速系統(tǒng)的實(shí)時性就有了保障[3]。
  
要實(shí)現(xiàn)多線程編程,可建立輔助線程(worker Thread)和用戶界面線程(User Interface Thread)。輔助線程主要用來執(zhí)行數(shù)控程序、坐標(biāo)顯示、動態(tài)仿真和數(shù)據(jù)預(yù)處理;用戶界面線程用來處理用戶的輸入,響應(yīng)用戶產(chǎn)生的事件和消息。

3  數(shù)控系統(tǒng)實(shí)時性分析

3.1 線程的實(shí)時性
  
數(shù)控系統(tǒng)需要完成的任務(wù)有很多,這些任務(wù)中,優(yōu)先級的要求級別不一樣。據(jù)此,可以利用Windows系統(tǒng)的多任務(wù)、搶占式的特點(diǎn)和多線程技術(shù)將各個任務(wù)分給不同的線程,并賦予各個線程不同的優(yōu)先級,當(dāng)高優(yōu)先級的線程執(zhí)行時,即實(shí)時性要求高的任務(wù)需要執(zhí)行時,可以自動地終止其他線程的工作轉(zhuǎn)而執(zhí)行這一線程[4]。通過這一方法,可以實(shí)現(xiàn)數(shù)控系統(tǒng)所要求的實(shí)時性。

3.2 輔助線程創(chuàng)建

本開發(fā)系統(tǒng)中所創(chuàng)建的輔助線程可大致劃分如下:
  
(1)坐標(biāo)顯示線程
  
在手動脈沖面板、電動控制面板和增量控制面板中,可實(shí)時顯示X、Y、Z三個運(yùn)動軸的坐標(biāo)。這樣可使操作人員直觀看到三軸的實(shí)際坐標(biāo)。實(shí)時性要求較低,所以使用最低優(yōu)先級:Lowest Normal。
  
(2)圖形顯示線程
  
圖像顯示線程用于在動態(tài)仿真面板中執(zhí)行圖形繪制的指令。通過圖形顯示,操作者可以在動態(tài)仿真的同時,對人機(jī)界面進(jìn)行操作。這一線程實(shí)時性要求較低,等級為:Blow Normal。
  
(3)IO狀態(tài)控制線程

此線程用于檢測由系統(tǒng)輸入的各個離散量,以及從數(shù)控程序得到的指令來輸出機(jī)床各離散量的狀態(tài)。此線程優(yōu)先級比前兩線程高,等級為:Normal。
  
(4)數(shù)據(jù)預(yù)處理線程

數(shù)據(jù)預(yù)處理線程主要負(fù)責(zé)完成編碼形式轉(zhuǎn)換、刀具長度補(bǔ)償、刀具半徑補(bǔ)償和公英制轉(zhuǎn)換等運(yùn)動控制數(shù)據(jù)預(yù)處理函數(shù)的執(zhí)行。等級為:Normal。
  
(5)運(yùn)動控制線程
  
此線程主要用于運(yùn)動控制器執(zhí)行數(shù)控代碼函數(shù)的運(yùn)行。負(fù)責(zé)向緩沖器輸入運(yùn)動控制命令,清空緩沖器和打開關(guān)閉緩沖器等操作。等級稍高:Above Normal。
  
(6)緊急控制線程

此線程處理一些需要機(jī)床立即做出反應(yīng)的時間,如機(jī)床的急停等。優(yōu)先級最高,等級為:Highest。
  
 

 

轉(zhuǎn)載請注明出處。

暫無關(guān)鍵詞
免責(zé)聲明

① 凡本網(wǎng)未注明其他出處的作品,版權(quán)均屬于激光制造網(wǎng),未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用。獲本網(wǎng)授權(quán)使用作品的,應(yīng)在授權(quán)范圍內(nèi)使 用,并注明"來源:激光制造網(wǎng)”。違反上述聲明者,本網(wǎng)將追究其相關(guān)責(zé)任。
② 凡本網(wǎng)注明其他來源的作品及圖片,均轉(zhuǎn)載自其它媒體,轉(zhuǎn)載目的在于傳遞更多信息,并不代表本媒贊同其觀點(diǎn)和對其真實(shí)性負(fù)責(zé),版權(quán)歸原作者所有,如有侵權(quán)請聯(lián)系我們刪除。
③ 任何單位或個人認(rèn)為本網(wǎng)內(nèi)容可能涉嫌侵犯其合法權(quán)益,請及時向本網(wǎng)提出書面權(quán)利通知,并提供身份證明、權(quán)屬證明、具體鏈接(URL)及詳細(xì)侵權(quán)情況證明。本網(wǎng)在收到上述法律文件后,將會依法盡快移除相關(guān)涉嫌侵權(quán)的內(nèi)容。

網(wǎng)友點(diǎn)評
0相關(guān)評論
精彩導(dǎo)讀