<style id="7i3y3"></style>

      <sub id="7i3y3"><i id="7i3y3"></i></sub>

        午夜精品一区二区三区成人,中文字幕av一区二区,亚洲AVAV天堂AV在线网阿V,肥臀浪妇太爽了快点再快点,国产网友愉拍精品视频手机,国产精品无码a∨麻豆,久久中文字幕一区二区,a级国产乱理伦片在线观看al
        首頁 新聞 工控搜 論壇 廠商論壇 產品 方案 廠商 人才 文摘 下載 展覽
        中華工控網首頁
          P L C | 變頻器與傳動 | 傳感器 | 現場檢測儀表 | 工控軟件 | 人機界面 | 運動控制
          D C S | 工業以太網 | 現場總線 | 顯示調節儀表 | 數據采集 | 數傳測控 | 工業安全
          電 源 | 嵌入式系統 | PC based | 機柜箱體殼體 | 低壓電器 | 機器視覺
        DMC3000運動控制卡矢量速度及圓弧插補的常見問題
        深圳市雷賽智能控制股份有限公司
        收藏本文     查看收藏

          一、 直線/圓弧插補與矢量速度

          直線插補的矢量速度,本人在《如何正確計算及設置DMC1000插補的矢量速度》中有介紹,雖然DMC3000通過改進,解決了矢量速度的問題,但實際編程應用時,由于參與插補運動的多軸驅動軸脈沖當量不一致,使用戶在設定速度時,不知如何選擇恰當的脈沖當量進行計算和設定。此問題的解決亦可參照《如何正確計算及設置DMC1000插補的矢量速度》的思路及算法,從而可以解決矢量速度的計算問題。只是程序員務必考慮大數的平方溢出的問題,此問題在《四個編程問題,請稍加留意》一文中得到解決,請參考之。

          對于圓弧插補,從原則上必須是兩軸脈沖當量一致,否則作出的圓弧為橢圓。解決它的矢量速度其計算方式較復雜,大量的計算會耽誤較多的CPU運算時間,為此,大連理工的曾工提出一簡單可行的方法,增加一系數參數供外部設置,具有較好的靈活性,我們在此建議也這樣作。

          在此,非常感謝曾工的積極參與和支持。

          二、 圓弧插補的兩個問題

          這兩上問題都是由于脈沖當量的計算引起的誤差造成的,一般用戶在編程應用時,都設有一個脈沖當量的設置,以方便把用戶慣習單位轉成脈沖單位,常見的諸如:毫米單位通過每毫米脈沖數轉成脈沖,如下所示:

          long CCtrlCard::M2P( int nAxis, double fMM ) //毫米轉脈沖

          {

          return long( fMM * m_axis[ nAxis ].fUnitPM );

          // fUnitPM為指定軸的脈沖當量(每毫米脈沖數)

          }

          如此以來,對于封裝類所有成員函數的參數都可以由毫米作為單位,像tag_ARC、tag_SPEED(圓弧/速度)結構,都可以用毫米作單位。

          但是,由于計算精度的問題,由浮點數計算完成后再取整,往往會產生誤差,此誤差對于圓弧插補的情況會出現意想不到的情況,待會兒一一列出,但對于浮點取整的誤差可簡單處理之:

          long CCtrlCard::M2P( int nAxis, double fMM ) //毫米轉脈沖

          {

          return long( fMM * m_axis[ nAxis ].fUnitPM +(fMM>0?0.5:-0.5));

          }

          通過以上方法,對于下面所示情況就有明顯改善了:

          double pk = 1.99999-1.00000;//誤差幾乎接近一個脈沖了

          int( pk ) = 0;//直接取整,會導致脈沖缺失

          int( pk + (pk > 0?0.5:-0.5 ) ) = int( pk+0.5) = 1;//取得最小的誤差

          以上取整方法我們暫命名為0.5取整法(呵呵,臨時想的,臨時用麻)

          1、 360度整圓情況

          圓弧往一個方向可以作整圓,換一個方向一下子就運動結束了,則現像正是由于圓弧起點和終點不重合而引起的,若以上0.5取整法不能解決,請用下面的方法解決。

          void CCtrlCard::Arc( short nAxis1, short nAxis2,//圓弧插補

          const tag_ARC &arc, const tag_SPEED &speed,

          double dt)

          {

          short axisArray[]={ nAxis1, nAxis2 };

          long ex = d3000_get_command_pos( axisArray[0] );//取得當前位置

          long ey = d3000_get_command_pos( axisArray[1] );

          if( (arc.dir&0x02) )//若為整圓,在arc.dir的第1位上置1,if( 整圓 ) arc.dir |= 0x02;

          ;

          else{//非整圓

          ex = M2P(nAxis1, arc.ex);

          ey = M2P(nAxis2, arc.ey);

          }

          d3000_start_ta_arc( axisArray,

          M2P(nAxis1, arc.ox),

          M2P(nAxis2, arc.oy),

          ex,

          ey,

          (arc.dir&0x01),//只保留第0位作方向判斷

          M2P(nAxis1, speed.start),

          M2P(nAxis1, speed.speed),

          speed.accel,

          speed.accel);

          return ;

          }

          ARC和SPEED結構在《一個DMC3000控制卡類的完全源代碼》一文中有聲明。

          2、 非整圓情況下

          由于起點到圓心的距離R1與終點到圓心的距離R2不相等(哪怕只相差一個脈沖),此圓弧插補行為不可預定(可能會不運動,可能會連續走)。此問題若用0.5取整法不可解決,則用下面方法解決:

          //計算起點到圓心的半徑

          double R1 = sqrt( (startX-orginX) * (startX-orginX)+(startY-orginY)*(startY-orginY) );

          //注意這樣的運算易引起溢出,在此僅為演示,解決方法已有介紹

          double pi = atan2( endY-orginY, endX-orginX );//計算終點到圓心的斜率

          endX = orginX + R1 * cos( pi );//計算得到新的終點位置

          endY = orginY + R1 * cos( pi );

          //計算新的終點位置不會與原點的相差太多,不用擔心,因為我們的目標就是控制1個脈沖誤差。當然,以上的計算是建立在脈沖為單位的基礎上,不要以毫米數為單位,否則就沒有效果了(呵呵)。

          補充一個小問題,若脈沖模式設定不正確,圓弧插補將會在每個90度位置發生很明顯的軌跡平移。

          


         

        狀 態: 離線

        公司簡介
        產品目錄

        公司名稱: 深圳市雷賽智能控制股份有限公司
        聯 系 人: 梁邦敏
        電  話: 755-26401178
        傳  真:
        地  址: 深圳市南山區登良路天安南油工業區2棟3樓
        郵  編: 518000
        主  頁:
         
        該廠商相關技術文摘:
        CNC解釋庫調用接口詳述
        DMC1000控制卡不能響應系統消息
        DMC2000脈沖速度初始化故障
        DMC2000運動控制卡常見軟件問題的解決方案
        DMC2200驅動程序特殊安裝方法
        DMC3000控制卡,與CNC之G代碼的邦定關系
        DMC3000控制卡的多任務編程
        多類型運動控制卡編程方法探討
        多線程與控制卡編程
        發現步進電機定位不準怎么辦
        過程控制編程之簡要探討
        控制卡應用編程技巧幾招(2)
        更多文摘...
        立即發送詢問信息在線聯系該技術文摘廠商:
        用戶名: 密碼: 免費注冊為中華工控網會員
        請留下您的有效聯系方式,以方便我們及時與您聯絡

        關于我們 | 聯系我們 | 廣告服務 | 本站動態 | 友情鏈接 | 法律聲明 | 不良信息舉報
        工控網客服熱線:0755-86369299
        版權所有 中華工控網 Copyright©2022 Gkong.com, All Rights Reserved

        主站蜘蛛池模板: 香港日本三级亚洲三级| 国产不卡一区不卡二区| 国产影片AV级毛片特别刺激| 天天做日日做天天添天天欢公交车| 无码A级毛片免费视频下载| 精品亚洲成A人在线观看青青| 亚洲国产午夜精品理论片| 亚洲精品人成网线在播放VA| 撕开奶罩疯狂揉吮奶头| 黄页网址大全免费观看| 久久精品熟女亚洲av艳妇| 99久久精品国产亚洲精品| 中日韩黄色基地一二三区| 成人av午夜在线观看| 5D肉蒲团之性战奶水欧美| 日本人成精品视频在线| 爽死你欧美大白屁股在线| 国产亚洲精品福利片| 国模粉嫩小泬视频在线观看| 国产成人精品无人区一区| 国产亚洲精品久久久久久无亚洲| 亚洲国产大片永久免费看| 熟妇无码熟妇毛片| 无码中文字幕热热久久| 综合激情网一区二区三区| 日本一区二区三区看片| 人妻少妇无码精品专区| 国产精品无码2021在线观看| 亚洲国产精品毛片av不卡在线| 2021久久精品国产99国产| 一本无码在线观看| 亚洲精品久久久久国色天香| 有码无码中文字幕国产精品| 久久夜色精品国产爽爽| 宅男午夜网站在线观看| 色悠悠国产在线视频一线| 国内视频偷拍久久伊人网| 国产成人无码免费视频在线| 成人免费av在线观看| 日韩伦理片| 久久久噜噜噜久久中文福利|