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