<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于ARM的數(shù)控算法圖示儀設(shè)計

          基于ARM的數(shù)控算法圖示儀設(shè)計

          作者: 時間:2009-07-03 來源:網(wǎng)絡(luò) 收藏

          (1)顯示更新任務(wù):流程如圖3所示。該任務(wù)啟動后將檢測更新信號是否到來。若信號沒有到來,操作系統(tǒng)將其從運行狀態(tài)轉(zhuǎn)入等待狀態(tài);若更新信號到來,程序從郵箱中取出中斷服務(wù)程序發(fā)送的各軸計數(shù)值或操作檢測任務(wù)發(fā)送的顯示設(shè)置信息。經(jīng)換算和比較后,選定頻率最高的軸作為基準,將其與另外兩個軸的脈沖一同顯示在脈沖顯示區(qū)中,并以正負號的方式在屏幕的方向標志區(qū)上指示出各軸的運動方向。隨后再根據(jù)頻率值f和步進電機在單個脈沖下驅(qū)動刀具直線運動的距離l計算出實際速度,按照一定比例N衰減后得到顯示屏上的各軸運動速度v=fl/N和行進距離s=vt,進而繪制出刀具各軸向的大致行走情況。

          (2)操作檢測任務(wù):流程如圖4所示。該任務(wù)啟動后將定時進行A/D采樣和I/O電平檢測,并與上次結(jié)果進行對比。如果電位器的電位發(fā)生較大的變化或功能選擇的I/O電平發(fā)生變化時,就將變換值以約定好的數(shù)據(jù)形式通過郵箱發(fā)送給顯示更新任務(wù),并發(fā)送更新信號量,通知顯示更新任務(wù)刷新顯示屏。
          (3)信號捕獲中斷服務(wù)程序:流程如圖5所示。

          發(fā)生中斷后首先判斷是哪一個軸產(chǎn)生的中斷,然后將計數(shù)值存放在相應(yīng)的變量中,并清除計時器的值,接著讀取方向信號的電平。在與上一次的計時數(shù)值比較后,如果相同,則說明機床在做直線運動,不需要刷新顯示屏,程序返回;如果計數(shù)值或電平發(fā)生了變化,則通過郵箱向更新任務(wù)發(fā)送相關(guān)數(shù)據(jù),然后發(fā)送信號量通知屏幕刷新。

          3 系統(tǒng)測試與應(yīng)用
          經(jīng)測試,該系統(tǒng)在最高脈沖頻率為200 kHz的運動控制芯片驅(qū)動下能夠正常顯示各軸脈沖的比例關(guān)系和相應(yīng)的頻率值,并能準確地描繪出如直線、簡單曲線和基本弧形等加工軌跡。儀的最大響應(yīng)延時約為30 ms,基本上能滿足要求。
          圖6是驅(qū)動器最高脈沖頻率為20 kHz下加工弧形時繪制的圖形。圖中弧形約占5π/8,橫軸和縱軸的速度比約為2:1。在驅(qū)動器允許范圍內(nèi),頻率表與速度成正比,即頻率比也約為2:1。圖中測試值基本符合理論值。

          該系統(tǒng)應(yīng)用于機床實驗系統(tǒng),教學(xué)中,取得了較好的實驗教學(xué)效果,學(xué)生反應(yīng)良好。


          4 結(jié) 話
          在此著重介紹了的運動軌跡數(shù)字儀的,分別從硬件和軟件設(shè)計兩個方面描述了系統(tǒng)的實現(xiàn)方法。它通過較低的成本,解決了研究和教學(xué)過程中分析插補、插補脈沖和刀具運動軌跡三者間關(guān)系的困難問題,在教學(xué)實用性上效果明顯。


          上一頁 1 2 下一頁

          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();