基于高檔數(shù)控的實時多任務(wù)實現(xiàn)
在線程優(yōu)先級設(shè)置中,通信線程的優(yōu)先級最高,這使得通信線程在需要CPU時間片等資源時,能夠順利的搶占其他線程的資源,保證上下位機的通信順暢,使下位機在加工時能夠平穩(wěn)的實現(xiàn)進(jìn)程,并且使下位機在出現(xiàn)異常情況時能及時通知上位機。由于通信這一動作是依照某種頻率進(jìn)行的,因此通信線程不會一直占用CPU資源,從而不會因為它的優(yōu)先級高使其他線程無法運行。
具體實現(xiàn)原理架構(gòu)如圖1所示。本文引用地址:http://www.ex-cimer.com/article/162207.htm
2.2 系統(tǒng)線程的具體實現(xiàn)
Delphi提供了許多與多線程編程相關(guān)的組件,其中最重要的是Tthread類,本文就是利用它來實現(xiàn)多線程編程。該類封裝了大多數(shù)與線程相關(guān)的方法,使用Tthread類大大簡化了多線程程序的開發(fā)步驟。Tthread類是一個抽象類,不可以直接創(chuàng)建它的實例,但是可以創(chuàng)建它的派生類。創(chuàng)建方法在Delphi菜單中依次選擇“File”→“New”→“Other”→“New”,選擇“Thread Object”項,在對話框中輸入新的線程類的名稱,確認(rèn)后即創(chuàng)建了一個新的線程類:
其中:“private”及“protected”用來定義變量和程序函數(shù),“procedure Execute;override;”是線程函數(shù),用來編寫線程的執(zhí)行部分。同時Delphi還提供了各種函數(shù)用來運行和終止線程等。創(chuàng)建了線程的派生類后可以生成該類的對象,來表示應(yīng)用程序的執(zhí)行線程。各個線程創(chuàng)建好后將NC的解釋程序、通信程序等放在各自線程函數(shù)內(nèi),再創(chuàng)建線程的對象,設(shè)置幾個線程就生成幾個對象,在對象內(nèi)編寫打開或終止線程等函數(shù)來控制線程的運行。
3 結(jié)語
基于Windows平臺的高檔數(shù)控實時操作系統(tǒng)的開發(fā),實現(xiàn)了不僅能向Windows平臺添加實時功能,而且使這些實時功能具有很好的可擴展性。本課題下步的目標(biāo)是將此實時系統(tǒng)的設(shè)計實現(xiàn)在Windows XPEmbedded平臺上,使其具備高檔數(shù)控系統(tǒng)需要的嵌入式設(shè)備的特性。
評論