• <nav id="qcire"><big id="qcire"><noframes id="qcire"></noframes></big></nav>
  • <s id="qcire"><tr id="qcire"><kbd id="qcire"></kbd></tr></s>
    <rp id="qcire"><ruby id="qcire"><blockquote id="qcire"></blockquote></ruby></rp>

  • 高川運動控制卡功能系列----電子凸輪
    2021-12-13

    電子凸輪


    目錄

    概述.................................................................................................................................. 1

    1. 基本介紹................................................................................................................... 1

    1.1 基本原理......................................................................................................... 2

    1.2 基本特點......................................................................................................... 2

    2. 應用講解................................................................................................................... 3

    2.1 硬件部分......................................................................................................... 3

    2.2 軟件部分......................................................................................................... 3

    1 工具介紹................................................................................................ 3

    2 指令介紹................................................................................................ 3

    3 應用案例................................................................................................ 7

    3. 注意事項................................................................................................................... 9

     


    概述

    利用構造的凸輪曲線來模擬機械凸輪,以達到機械凸輪系統相同凸輪軸與主軸之間相對運動的軟件系統。

    1. 基本介紹

    1.1 基本原理

    電子凸輪屬于多軸同步運動(速度位置同步),這種運動(也叫Follow運動)是基于主軸和一個或者多個從軸系統。主軸可以是物理軸,也可以是虛擬軸(一種算法, 沒有實際的輸出);

    電子凸輪是直接將軌跡點輸入到驅動器內,通過設定的計算方式進行伺服控制,達到和機械凸輪相同的加工目的,實現一種周期性的往復運動;

    啟動位置和終點位置是否一致可以將電子凸輪曲線分為閉式曲線和開式曲線,如圖1.1.1;

    圖1.1.1 電子凸輪運動曲線

    1.2 基本特點

    電子凸輪靈活,軌跡易于改動,方便根據需求加工軌跡,不需要繁瑣更改機械凸輪;

    當要改變凸輪的運動軌跡時,加工機械凸輪的成本較高,難度較大,而電子凸輪只需簡單的設定一些軌跡參數即可,不需要產生新的成本;

    機械凸輪會磨損,通常是機床噪音的最大來源,而用電子凸輪可減輕運行阻力及噪音,減輕機身重量,提高效率;

    每組 Follow 運動關聯的兩個軸,被跟隨軸稱為主軸,跟隨軸稱為從軸。多個從軸可以跟隨同一個主軸,從軸又可以作為其他軸的主軸

    從軸可以跟隨主軸的規劃位置或者實際位置,從軸也可以直接跟隨外部的編碼器輸入從軸可以指跟隨主軸的某個運動方向(正向或者負向)或者雙向跟隨;

    與從軸之間的同步,通過用戶設定的多個數據段自動規劃,每個數據段包含主軸位移,從軸位移,速度規劃類型三個參數,即主軸在完成設定位移的過程中,從軸也自動完成設定位移,這個過程中的速度曲線由速度規劃類型決定;

    每個從軸有兩個 FIFO 用于緩存同步數據段,每個 FIFO 最多可以存儲 32 個數據段,通過手動切換,其中一個 FIFO 的數據用完后會自動切換到另外一個 FIFO;

    通過配置 FIFO 的循環次數,可實現從軸周期性的跟隨;

    同步的啟動可以配置為立即啟動,也可以配置為主軸穿越某個位置時自動啟動;

    2. 應用講解

    2.1 硬件部分

    2.2 軟件部分

    1)工具介紹

    通過GCS.exe工具對電子凸輪的使用配置進行詳細說明。GCS.exe工具連接控制器,點擊功能->Follow(電子凸輪)運動,打開測試軸1,測試軸2,如圖2.2.1電子凸輪測試。

    圖2.2.1 電子凸輪測試

    從圖2.1的Follow(電子凸輪)運動工具中測試,添加主軸位移、從軸位移和跟隨類型,添加位置點沒有限制;參數設置列表中,從軸通道、跟隨主軸、主軸類型、跟隨方向和循環次數根據需求選擇即可;對于Fifo序號,用來設置從軸緩存同步數據段的;啟動模式如果選擇主軸穿越啟動,當主軸達到設定的穿越位置從軸方可響應;配置完成執行1.配置,2.壓入數據和3.啟動;值得注意的是,啟動前,需要把軸位置,狀態清零。

    2)指令介紹

    以下為電子凸輪常用功能函數的詳細說明。

    電子凸輪

    函數原形

    函數說明

    NMC_MtFollowSetDir

    設置FOLLOW跟隨方向

    NMC_MtFollowGetDir

    獲取FOLLOW跟隨方向

    NMC_MtFollowSetMaster

    設置FOLLOW主軸參數

    NMC_MtFollowGetMaster

    獲取FOLLOW主軸參數

    NMC_MtFollowSetLoopCount

    設置FOLLOW的循環執行次數

    NMC_MtFollowGetLoopCount

    獲取FOLLOW的循環執行次數

    NMC_MtFollowSetEvent

    設置FOLLOW的的啟動事件

    NMC_MtFollowGetEvent

    獲取FOLLOW的啟動事件

    NMC_MtFollowGetSpace

    獲取FOLLOWfifo剩余空間

    NMC_MtFollowPushData

    設置FOLLOW的數據

    NMC_MtFollowClear

    清除FOLLOW對應fifo號的數據

    NMC_MtFollowStart

    啟動Follow運動

    NMC_MtFollowSwitch

    切換Follow運動的fifo

     

    (1)設置單軸運動速度曲線類型

    NMC_MtSetPrfMode( HAND axisHandle,  short mode );

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    軸句柄

    mode

    輸入

    各軸的規劃模式

    #define MT_NONE_PRF_MODE     (-1) // 無效

    #define MT_PTP_PRF_MODE      (0)    // 梯形規劃

    #define MT_JOG_PRF_MODE      (1)    // 連續速度模式

    #define MT_CRD_PRF_MODE      (3)    // 坐標系

    #define MT_GANTRY_MODE       (4)    // 龍門跟隨模式

    #define MT_PT_PRF_MODE       (5)  //   PT模式

    #define   MT_MULTI_LINE_MODE   (6)  // 多軸直線插補

    #define MT_GEAR_PRF_MODE     (7)    // 電子齒輪模式

    #define MT_FOLLOW_PRF_MODE   (8)  // Follow跟隨模式

    注意:坐標系模式不需要通過NMC_MtSetPrfMode設置

     

    (2)單軸JOG運動

    NMC_MtMoveJog(HAND axisHandle, double acc, double dec, double maxVel, short  smoothCoef, short clrStsFlag);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    軸句柄

    acc

    輸入

    加速度,脈沖/ms^2

    dec

    輸入

    減速度,脈沖/ms^2

    maxVel

    輸入

    最大速度,脈沖/ms

    smoothCoef

    輸入

    平滑系數,[0,   199], 單位ms

    clrStsFlag

    輸入

    是否運動前先清除軸狀態,0:不清除,1:清除

     

    (3)設置FOLLOW跟隨方向

    NMC_MtFollowSetDir(HAND axisHandle, short dir);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    dir

    輸入

    =0:雙向跟隨

    <0:< span="">負向跟隨

    >0:正向跟隨

     

    (4)獲取FOLLOW跟隨方向

    NMC_MtFollowGetDir(HAND axisHandle, short *pDir);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    pDir

    輸出

    =0:雙向跟隨

    <0:< span="">負向跟隨

    >0:正向跟隨

     

    (5)設置FOLLOW主軸參數

    NMC_MtFollowSetMaster(HAND axisHandle, short masterNo, short masterType);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    masterNo

    輸入

    主軸序列號(0~N)

    masterType

    輸入

    主軸類型

    #define PROFILE_FOLLOW_MASTER_NONE  (0) //   0:無效

    #define   PROFILE_FOLLOW_MASTER_AXIS_PRF  (1)     //   1:AXIS規劃值

    #define   PROFILE_FOLLOW_MASTER_AXIS_ENC  (2)     //   2:AXIS反饋值

    #define PROFILE_FOLLOW_MASTER_ENC       (3)       // 3:編碼器值

     

    (6)獲取FOLLOW主軸參數

    NMC_MtFollowGetMaster(HAND axisHandle, short *pMasterNo, short *pMasterType);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    pMasterNo

    輸出

    主軸序列號(0~N)

    pMasterType

    輸出

    主軸類型,見宏定義

     

    (7)設置FOLLOW的循環執行次數

    NMC_MtFollowSetLoopCount(HAND axisHandle, long loopCnt);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    loopCnt

    輸入

    循環次數

     

    (8)獲取FOLLOW的循環執行次數

    NMC_MtFollowGetLoopCount(HAND axisHandle, long *pLoopCnt);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    ploopCnt

    輸出

    循環次數

     

    (9)設置FOLLOW的的啟動事件

    NMC_MtFollowSetEvent(HAND axisHandle, short eventType, short masterDir, long pos);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    eventType

    輸入

    1:表示調用啟動指令以后立即啟動

    2:表示主軸穿越設定位置以后啟動跟隨

    masterDir

    輸入

    穿越啟動時,主軸的運動方向:1主軸正向運動,-1 主軸負向運動

    pos

    輸入

    穿越位置

     

    (10)獲取FOLLOW的的啟動事件

    NMC_MtFollowGetEvent(HAND axisHandle, short *pEventType, short *pMasterDir, long *pPos);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    pEventType

    輸出

    1 表示調用啟動指令以后  立即啟動

    2表示主軸穿越設定位置以后啟動跟隨

    pMasterDir

    輸出

    穿越啟動時,主軸的運動方向:1 主軸正向運動,-1 主軸負向運動

    pPos

    輸出

    穿越位置

     

    (11)獲取FOLLOW的fifo剩余空間

    NMC_MtFollowGetSpace(HAND axisHandle, short *pSpace, short fifoNo);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    pSpace

    輸出

    空間大小

    fifoNo

    輸入

    fifo號,0或1

     

    (12)設置FOLLOW的數據

    NMC_MtFollowPushData(HAND axisHandle, long masterPos, double slavePos, short type, short fifoNo;

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    masterPos

    輸入

    主軸位移

    slavePos

    輸入

    從軸位移

    type

    輸入

    數據段類型:0普通段,默認;1勻速段;2 減速到 0 段;3保持 FIFO 之間速度連續

    fifoNo

    輸入

    fifo號,0或1

     

    (13)清除FOLLOW對應fifo號的數據

    NMC_MtFollowClear(HAND axisHandle, short fifoNo);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    fifoNo

    輸入

    fifo號,0或1

     

    (14)啟動Follow運動

    NMC_MtFollowStart(HAND axisHandle, short syncAxCnts, short *pSyncAxArray);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    syncAxCnts

    輸入

    不包括axisHandle   的其他同步啟動軸數量

    pSyncAxArray

    輸入

    其他同步啟動軸的序號:0~N

     

    (15)切換Follow運動的fifo號

    NMC_MtFollowSwitch(HAND axisHandle, short syncAxCnts, short *pSyncAxArray);

    參數

    輸入/輸出

    描述

    axisHandle

    輸入

    從軸句柄

    syncAxCnts

    輸入

    不包括axisHandle   的其他同步進行fifo切換的軸數量

    pSyncAxArray

    輸入

    其他同步進行fifo切換的軸的序號:0~N

     

    3)應用案例

    該案例主軸為 Jog 模式,速度為 50pulse/ms,從軸為 Follow 模式,跟隨主軸的規劃位置。從 軸啟動的跟隨條件是:主軸走過 50000pulse 后,從軸啟動跟隨。從軸的運動規律由 3 段組成,如下表所示,加速段跟隨,勻速跟隨,減速跟隨,類似一個梯形曲線。并且無限次循環此數據段。


    第一段

    第二段

    第三段

    主軸位置

    20000

    20000

    20000

    從軸位置

    10000

    20000

    10000

     

    /*********此處省略控制器初始化部分***********/

     

    //函數返回值錯誤

    #define RTN_ERR {if(rtn != RTN_CMD_SUCCESS){ return;}}

     

    short rtn = 0;

    //啟動主軸JOG運動, 速度脈沖/ms, 加、減速度為脈沖/ms^2

    rtn = NMC_MtMoveJog(axishandle[0],   1, 1, 50, 0, 1);

    RTN_ERR

    //設置軸二的運動模式為FOllow模式

    rtn = NMC_MtSetPrfMode(axishandle[1],   MT_FOLLOW_PRF_MODE);

    RTN_ERR

    //清空從軸FIFO數據

    rtn = NMC_MtFollowClear(axishandle[1],   0);

    RTN_ERR

    //設置跟隨主軸的規劃位置

    rtn = NMC_MtFollowSetMaster(axishandle[1],   0, PROFILE_FOLLOW_MASTER_AXIS_PRF);

    RTN_ERR

    //設置跟隨數據

    double masterpos = 20000;

    double slavepos = 10000;

    rtn = NMC_MtFollowPushData(axishandle[1],   masterpos, slavepos,   0, 0);

    RTN_ERR

    masterpos += 20000;

    slavepos += 20000;

    rtn = NMC_MtFollowPushData(axishandle[1],   masterpos, slavepos,   0, 0);

    RTN_ERR

    masterpos += 20000;

    slavepos += 10000;

    rtn = NMC_MtFollowPushData(axishandle[1],   masterpos, slavepos,   0, 0);

    RTN_ERR

    //設置為無限循環

    rtn = NMC_MtFollowSetLoopCount(axishandle[1], 0);

    RTN_ERR

    //設置跟隨條件, 主軸正向運動到位置時啟動

    rtn = NMC_MtFollowSetEvent(axishandle[1],   2, 1, 50000);

    RTN_ERR

    //啟動Follow運動

    rtn = NMC_MtFollowStart(axishandle[1],   0, 0);

    RTN_ERR

    //跟隨運動過程中可調用NMC_MtFollowGetLoopCount查詢循環執行次數

    return rtn;

     

     

    3. 注意事項

    首先使用GCS.exe工具測試數控機床是否達到安全啟動要求;

    在函數中,有三種編程對象,對于單軸控制的指令是以 NMC_Mt 開頭,對于坐標系的指令是以NMC_Crd 開頭,其余是對控制器的指令;

    文檔只挑選常用功能,更多功能請關注頭文件,在里面做了詳細的注釋;

    如有其他疑問,請聯系技術。

     


    銷售服務熱線:13510269529 張先生 電子郵箱:sales@gcauto.com.cn 官方網址:www.consulenza-web.com 辦公地址:深圳市寶安區興東社區留仙二路57號新政工業園A棟4樓南
    97国产在线看片免费人成视频

  • <nav id="qcire"><big id="qcire"><noframes id="qcire"></noframes></big></nav>
  • <s id="qcire"><tr id="qcire"><kbd id="qcire"></kbd></tr></s>
    <rp id="qcire"><ruby id="qcire"><blockquote id="qcire"></blockquote></ruby></rp>