国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Windows的全軟件數(shù)控系統(tǒng)體系結(jié)構(gòu)研究

2015-04-26 08:23:58雷立群王戩
機床與液壓 2015年2期
關(guān)鍵詞:實時控制數(shù)控系統(tǒng)線程

雷立群,王戩

(吉林農(nóng)業(yè)科技學(xué)院機械與土木工程學(xué)院,吉林吉林 132101)

數(shù)控系統(tǒng)是一種典型的多任務(wù)實時控制系統(tǒng),系統(tǒng)中的強實時控制部分主要是插補運算和位置控制脈沖的輸出。眾所周知,插補是數(shù)控機床控制刀具運動軌跡的核心,傳統(tǒng)的數(shù)控系統(tǒng)多因?qū)崟r性原因,主要采用硬件來實現(xiàn)強實時控制部分[1-3],硬件實現(xiàn)的數(shù)控系統(tǒng)限制了系統(tǒng)的體系結(jié)構(gòu),為開放式數(shù)控系統(tǒng)的實現(xiàn)增加了難度。而采用全軟件的方法實現(xiàn)數(shù)控系統(tǒng)是實現(xiàn)開放式數(shù)控系統(tǒng)最簡潔的途徑,文獻[4]提出采用引入外部時鐘中斷的方法,有效解決了Windows操作系統(tǒng)高精度定時時鐘的問題,使全軟件數(shù)控系統(tǒng)的實現(xiàn)成為可能。作者在此基礎(chǔ)上構(gòu)建了Windows操作系統(tǒng)全軟件結(jié)構(gòu)的整體建模,實驗證明這種數(shù)控系統(tǒng)的結(jié)構(gòu)模型是可行的。

數(shù)控加工是一種復(fù)雜的控制過程,在加工過程中同一時間段中可能需要同時完成兩種不同的功能。例如,系統(tǒng)在插補的同時,需要不斷地翻譯并向內(nèi)存送入數(shù)控代碼。同時,系統(tǒng)還要能夠隨時接收用戶發(fā)出的緊急控制信息等。全軟件數(shù)控系統(tǒng)在總設(shè)計上的關(guān)鍵在于如何使系統(tǒng)能夠更為精確和快速地響應(yīng)控制,因此在程序的總體設(shè)計上盡量避免程序之間相互調(diào)用而產(chǎn)生的軟件延時問題。

1 數(shù)控系統(tǒng)的整體結(jié)構(gòu)模型

數(shù)控系統(tǒng)在整體上采用了分層的軟件結(jié)構(gòu),圖1給出了數(shù)控系統(tǒng)各個部分之間的相互關(guān)系(雙箭頭表示它們之間可以進行雙向數(shù)據(jù)傳輸),可以清楚地看到數(shù)控系統(tǒng)的軟件結(jié)構(gòu)以及系統(tǒng)的控制策略。數(shù)控系統(tǒng)由底層WDM程序與頂層控制應(yīng)用程序兩部分組成:WDM程序主要負責系統(tǒng)的強實時控制部分,如外部硬件中斷的截取、控制脈沖的輸出等;而頂層應(yīng)用程序則主要負責數(shù)控代碼的編譯、控制參數(shù)的設(shè)置、加工位置信息的顯示等。

圖1 數(shù)控系統(tǒng)整體結(jié)構(gòu)框圖

從圖中可以看到,WDM程序位于控制結(jié)構(gòu)的中間部分。因此在控制的過程中,底層的WDM程序必然要不斷地同外部硬件以及頂層應(yīng)用程序通信。

2 實時控制過程

從圖1可以看到全軟件數(shù)控系統(tǒng)整體上分為3個大的部分,這3個大的部分文中采用了多線程的編程實現(xiàn)方式,包括主線程、數(shù)據(jù)處理線程和插補線程。在程序的實現(xiàn)上,一方面要考慮如何避免線程之間的切換對強實時控制部分產(chǎn)生的影響,另一方面又要協(xié)調(diào)好各個線程之間的同步關(guān)系,以保證系統(tǒng)的整體控制結(jié)構(gòu)更加合理完善。下面對各線程的功能進行一一介紹:

(1)主線程。負責對數(shù)控文件的處理(例如,對文件的編輯、修改、存儲和讀入等),以及接收用戶的控制信息和輸出系統(tǒng)的顯示信息,如系統(tǒng)的啟動、暫停、繼續(xù)執(zhí)行、倍率調(diào)整等的控制以及加工中刀具的位置、進給速度等內(nèi)容的顯示。

(2)數(shù)據(jù)處理線程。該線程主要負責對數(shù)控代碼的處理,包括數(shù)控文件的編譯、向內(nèi)存中存放編譯完成的數(shù)控指令、負責實時接收插補過程中傳遞過來的各種需要顯示的數(shù)據(jù)信息和命令等。

(3)插補線程。主要用于實現(xiàn)系統(tǒng)中實時性較強的插補運算、位置控制等內(nèi)容。圖2為各線程之間的狀態(tài)示意圖。

圖2 線接觸加工數(shù)控系統(tǒng)線程之間的同步關(guān)系

從圖2中可以看到各個線程之間具有如下的關(guān)系:

(1)主線程負責激活和掛起其他的線程。當接收到啟動加工的信息后主線程負責激活數(shù)據(jù)處理線程和插補線程,當加工結(jié)束或接收到暫停信息時,主線程負責掛起其他的線程。

(2)線程之間的同步關(guān)系。插補線程與數(shù)據(jù)處理線程之間總是按照:插補線程→數(shù)據(jù)處理線程→插補線程→數(shù)據(jù)處理線程…這樣的過程交替執(zhí)行的。在插補過程中,數(shù)據(jù)處理線程一直處于等待狀態(tài),準備接收插補線程發(fā)來的編譯數(shù)控文件并存入數(shù)控代碼的命令,或者是接收用于顯示刀具運動位置的數(shù)據(jù)。因此,它們之間存在著線程之間的同步問題。插補線程和數(shù)據(jù)處理線程之間是通過Win32事件通知的方式進行通信的。具體的實現(xiàn)過程是:在數(shù)據(jù)處理線程中創(chuàng)建一個事件后,直接將該事件句柄傳遞給插補線程,然后等待插補線程發(fā)送事件消息。插補線程通過類KEvent獲取這個事件的一個對象指針后,通過設(shè)置事件信號狀態(tài)來觸發(fā)應(yīng)用程序。

在插補線程中,當插補周期結(jié)束時,如果需要繼續(xù)向內(nèi)存空間填充數(shù)控指令時,則通過在延遲過程調(diào)用(DPC)函數(shù)內(nèi)設(shè)置事件為信號狀態(tài),通知應(yīng)用程序,程序如下:

VOIDSampleISADevice::dpc

{

m_pEventToSignal->Set();

}

數(shù)據(jù)處理線程通過下面的方式接收插補線程發(fā)送過來的通知信息:

while(1)

{

WaitForSingleObject(hEvent1,INFINITE);//等待插補命令執(zhí)行完畢…//執(zhí)行相應(yīng)的操作}

3 控制/顯示界面的組成

文中采用前后臺的方式設(shè)計了Windows操作系統(tǒng)下數(shù)控系統(tǒng)的軟件結(jié)構(gòu),其中前臺軟件用C++Bulider設(shè)計完成,后臺采用WDM設(shè)備驅(qū)動程序設(shè)計實現(xiàn),數(shù)控系統(tǒng)軟件可實現(xiàn)對直線、圓弧輪廓的走刀控制。

數(shù)控系統(tǒng)的控制界面和加工運動控制過程中的位置顯示界面如圖3所示,下面對各部分進行具體的介紹。

(1)控制界面

控制面板由兩部分組成,在設(shè)計時依據(jù)的是界面簡單、清晰,控制方式便捷的原則進行的。它位于主功能界面的右方,用開關(guān)按鍵以及分頁等進行設(shè)計的。

(2)顯示界面

顯示面板也由兩部分組成,位于控制面板的左上方和右上方,主要用于顯示加工中各個坐標軸的運動位置、加工中的進給速度等。

圖3 線接觸加工數(shù)控系統(tǒng)控制界面

圖4 控制界面

圖5 顯示界面

4 小結(jié)

提出了采用多線程的程序結(jié)構(gòu)模式實現(xiàn)全軟件控制系統(tǒng),控制系統(tǒng)的強實時部分在Windows操作系統(tǒng)底層的驅(qū)動程序部分實現(xiàn),管理程序和顯示程序等弱實時控制部分在應(yīng)用程序?qū)用鎸崿F(xiàn),各個控制部分之間通過中斷及線程通信來實現(xiàn)。數(shù)控系統(tǒng)軟件最終實現(xiàn)了對9個軸電機驅(qū)動器的控制,實驗證明:控制系統(tǒng)的極限加工進給速度可達到1 500 mm/min,系統(tǒng)的最小脈沖當量是0.037μm,數(shù)控系統(tǒng)可實現(xiàn)對空間直線、圓弧等輪廓的加工控制。

[1]賴曉豐,劉敬猛,李善鋒.基于ARM和運動控制器的嵌入式數(shù)控系統(tǒng)設(shè)計[J].機床與液壓,2011,39(6):86-88.

[2]朱利東,殷蘇民.基于嵌入式實時操作系統(tǒng)的開放式數(shù)控系統(tǒng)的研究[J].機床與液壓,2004(1):92-95.

[3]楊恒宗,傅星,張師偉.基于DSP與單片機的激光加工數(shù)控系統(tǒng)的研究[J].組合機床與自動化加工技術(shù),2005(12):35-37.

[4]雷立群,于振文.基于Windows的全軟件數(shù)控系統(tǒng)實現(xiàn)方法研究[J].機床與液壓,2012,40(9):94-97,20.

[5]何航.Windows開發(fā)式數(shù)控系統(tǒng)軟件設(shè)計與研究[D].成都:電子科技大學(xué),2004.

[6]LEI L Q,WANG K Q,HAN J.Implementation Study about the Software CNCSystem Based on Windows[J].Advanced Materials Research,2011,411:264-269.

[7]武安河,邰銘,于洪濤.Windows2000/XPWDM設(shè)備驅(qū)動程序開發(fā)[M].北京:電子工業(yè)出版社,2003:1-354.

猜你喜歡
實時控制數(shù)控系統(tǒng)線程
基于FANUC 32i A數(shù)控系統(tǒng)的外部測量設(shè)計
西門子840D sl數(shù)控系統(tǒng)在SC125大型車銑鏜床技術(shù)改造中的應(yīng)用
基于FANUC Oi mate TD數(shù)控系統(tǒng)的手動功能開發(fā)
數(shù)控系統(tǒng)中GUI軟件平臺設(shè)計和實現(xiàn)
淺談linux多線程協(xié)作
基于LabVIEW微電網(wǎng)實驗平臺監(jiān)控系統(tǒng)的設(shè)計與實現(xiàn)
探討ERP系統(tǒng)環(huán)境下企業(yè)會計的實時控制
利用有線電視網(wǎng)絡(luò)技術(shù)實現(xiàn)智能小區(qū)方法的探討
空間機器人的計算力矩實時控制方法
Linux線程實現(xiàn)技術(shù)研究
灵台县| 都匀市| 龙岩市| 九龙坡区| 石门县| 交城县| 子长县| 永川市| 大同市| 吉首市| 澎湖县| 厦门市| 西昌市| 武清区| 峡江县| 郧西县| 昂仁县| 牟定县| 泸水县| 武胜县| 怀集县| 渝中区| 正安县| 蒲江县| 乳山市| 苏州市| 酒泉市| 郧西县| 清原| 义马市| 乌兰浩特市| 离岛区| 兴义市| 二连浩特市| 宜川县| 嘉荫县| 云南省| 葵青区| 霍林郭勒市| 淳安县| 舒兰市|