• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

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

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

      雷立群,王戩

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

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

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

      1 數(shù)控系統(tǒng)的整體結構模型

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

      圖1 數(shù)控系統(tǒng)整體結構框圖

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

      2 實時控制過程

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

      (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)線程之間的同步關系

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

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

      (2)線程之間的同步關系。插補線程與數(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獲取這個事件的一個對象指針后,通過設置事件信號狀態(tài)來觸發(fā)應用程序。

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

      VOIDSampleISADevice::dpc

      {

      m_pEventToSignal->Set();

      }

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

      while(1)

      {

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

      3 控制/顯示界面的組成

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

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

      (1)控制界面

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

      (2)顯示界面

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

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

      圖4 控制界面

      圖5 顯示界面

      4 小結

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

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

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

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

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

      [5]何航.Windows開發(fā)式數(shù)控系統(tǒng)軟件設計與研究[D].成都:電子科技大學,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設備驅動程序開發(fā)[M].北京:電子工業(yè)出版社,2003:1-354.

      猜你喜歡
      實時控制數(shù)控系統(tǒng)線程
      基于FANUC 32i A數(shù)控系統(tǒng)的外部測量設計
      西門子840D sl數(shù)控系統(tǒng)在SC125大型車銑鏜床技術改造中的應用
      基于FANUC Oi mate TD數(shù)控系統(tǒng)的手動功能開發(fā)
      數(shù)控系統(tǒng)中GUI軟件平臺設計和實現(xiàn)
      淺談linux多線程協(xié)作
      基于LabVIEW微電網(wǎng)實驗平臺監(jiān)控系統(tǒng)的設計與實現(xiàn)
      探討ERP系統(tǒng)環(huán)境下企業(yè)會計的實時控制
      利用有線電視網(wǎng)絡技術實現(xiàn)智能小區(qū)方法的探討
      空間機器人的計算力矩實時控制方法
      Linux線程實現(xiàn)技術研究
      台北市| 太原市| 千阳县| 措美县| 娄底市| 荥阳市| 菏泽市| 忻城县| 武平县| 敦煌市| 左权县| 察雅县| 海南省| 杭州市| 临漳县| 介休市| 繁昌县| 英吉沙县| 汕头市| 福建省| 华安县| 乌鲁木齐市| 苏尼特左旗| 土默特右旗| 鄄城县| 莎车县| 肇东市| 吉林市| 平安县| 牡丹江市| 鲜城| 岳西县| 沙田区| 宜宾县| 潍坊市| 龙江县| 阜新| 咸宁市| 惠安县| 监利县| 广河县|