高川運動控制卡功能系列----電子凸輪
        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 官方網址:m.joblessfreaks.com 辦公地址:廣東省深圳市寶安區新安街道隆昌路2號甲岸科技園1號樓6樓
        主站蜘蛛池模板: 无码一区二区三区免费| 国产福利91精品一区二区| 亚洲国产综合精品一区在线播放| 国产成人一区二区三区精品久久 | 综合人妻久久一区二区精品| 精品一区二区ww| 亚洲福利一区二区精品秒拍| 波多野结衣免费一区视频| 日韩一区二区三区不卡视频| 蜜桃臀无码内射一区二区三区| 成人精品视频一区二区三区| 亚洲Aⅴ无码一区二区二三区软件| 多人伦精品一区二区三区视频| 精品女同一区二区三区免费站| 午夜福利一区二区三区在线观看| 伊人激情AV一区二区三区| 久久一区二区三区99| 精品久久国产一区二区三区香蕉| 精品女同一区二区三区免费播放| 精品国产AV无码一区二区三区| 中文字幕日韩一区二区不卡| 91久久精品无码一区二区毛片| 久久久精品人妻一区二区三区蜜桃| 国精产品一区一区三区免费视频 | 国产精品分类视频分类一区| 亚洲夜夜欢A∨一区二区三区| 精品日韩在线视频一区二区三区 | eeuss鲁片一区二区三区| 无码aⅴ精品一区二区三区| 国产一区二区好的精华液| 精品亚洲福利一区二区| 国产伦精品一区二区三区视频小说 | 午夜精品一区二区三区免费视频| 奇米精品一区二区三区在线观看| 日韩人妻无码一区二区三区 | 色一乱一伦一图一区二区精品| 久久se精品动漫一区二区三区| 亚洲av鲁丝一区二区三区 | 亚洲综合激情五月色一区| 夜夜精品视频一区二区| 国产成人高清视频一区二区|