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