高川運(yùn)動控制卡功能系列----電子凸輪
        2021-12-13

        電子凸輪


        目錄

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

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

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

        1.2 基本特點(diǎn)......................................................................................................... 2

        2. 應(yīng)用講解................................................................................................................... 3

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

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

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

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

        3 應(yīng)用案例................................................................................................ 7

        3. 注意事項(xiàng)................................................................................................................... 9

         


        概述

        利用構(gòu)造的凸輪曲線來模擬機(jī)械凸輪,以達(dá)到機(jī)械凸輪系統(tǒng)相同凸輪軸與主軸之間相對運(yùn)動的軟件系統(tǒng)。

        1. 基本介紹

        1.1 基本原理

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

        電子凸輪是直接將軌跡點(diǎn)輸入到驅(qū)動器內(nèi),通過設(shè)定的計(jì)算方式進(jìn)行伺服控制,達(dá)到和機(jī)械凸輪相同的加工目的,實(shí)現(xiàn)一種周期性的往復(fù)運(yùn)動;

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

        圖1.1.1 電子凸輪運(yùn)動曲線

        1.2 基本特點(diǎn)

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

        當(dāng)要改變凸輪的運(yùn)動軌跡時,加工機(jī)械凸輪的成本較高,難度較大,而電子凸輪只需簡單的設(shè)定一些軌跡參數(shù)即可,不需要產(chǎn)生新的成本;

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

        每組 Follow 運(yùn)動關(guān)聯(lián)的兩個軸,被跟隨軸稱為主軸,跟隨軸稱為從軸。多個從軸可以跟隨同一個主軸,從軸又可以作為其他軸的主軸

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

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

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

        通過配置 FIFO 的循環(huán)次數(shù),可實(shí)現(xiàn)從軸周期性的跟隨;

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

        2. 應(yīng)用講解

        2.1 硬件部分

        2.2 軟件部分

        1)工具介紹

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

        圖2.2.1 電子凸輪測試

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

        2)指令介紹

        以下為電子凸輪常用功能函數(shù)的詳細(xì)說明。

        電子凸輪

        函數(shù)原形

        函數(shù)說明

        NMC_MtFollowSetDir

        設(shè)置FOLLOW跟隨方向

        NMC_MtFollowGetDir

        獲取FOLLOW跟隨方向

        NMC_MtFollowSetMaster

        設(shè)置FOLLOW主軸參數(shù)

        NMC_MtFollowGetMaster

        獲取FOLLOW主軸參數(shù)

        NMC_MtFollowSetLoopCount

        設(shè)置FOLLOW的循環(huán)執(zhí)行次數(shù)

        NMC_MtFollowGetLoopCount

        獲取FOLLOW的循環(huán)執(zhí)行次數(shù)

        NMC_MtFollowSetEvent

        設(shè)置FOLLOW的的啟動事件

        NMC_MtFollowGetEvent

        獲取FOLLOW的啟動事件

        NMC_MtFollowGetSpace

        獲取FOLLOWfifo剩余空間

        NMC_MtFollowPushData

        設(shè)置FOLLOW的數(shù)據(jù)

        NMC_MtFollowClear

        清除FOLLOW對應(yīng)fifo號的數(shù)據(jù)

        NMC_MtFollowStart

        啟動Follow運(yùn)動

        NMC_MtFollowSwitch

        切換Follow運(yùn)動的fifo

         

        (1)設(shè)置單軸運(yùn)動速度曲線類型

        NMC_MtSetPrfMode( HAND axisHandle,  short mode );

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        軸句柄

        mode

        輸入

        各軸的規(guī)劃模式

        #define MT_NONE_PRF_MODE     (-1) // 無效

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

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

        #define MT_CRD_PRF_MODE      (3)    // 坐標(biāo)系

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

        #define MT_PT_PRF_MODE       (5)  //   PT模式

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

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

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

        注意:坐標(biāo)系模式不需要通過NMC_MtSetPrfMode設(shè)置

         

        (2)單軸JOG運(yùn)動

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        軸句柄

        acc

        輸入

        加速度,脈沖/ms^2

        dec

        輸入

        減速度,脈沖/ms^2

        maxVel

        輸入

        最大速度,脈沖/ms

        smoothCoef

        輸入

        平滑系數(shù),[0,   199], 單位ms

        clrStsFlag

        輸入

        是否運(yùn)動前先清除軸狀態(tài),0:不清除,1:清除

         

        (3)設(shè)置FOLLOW跟隨方向

        NMC_MtFollowSetDir(HAND axisHandle, short dir);

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        dir

        輸入

        =0:雙向跟隨

        <0:< span="">負(fù)向跟隨

        >0:正向跟隨

         

        (4)獲取FOLLOW跟隨方向

        NMC_MtFollowGetDir(HAND axisHandle, short *pDir);

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        pDir

        輸出

        =0:雙向跟隨

        <0:< span="">負(fù)向跟隨

        >0:正向跟隨

         

        (5)設(shè)置FOLLOW主軸參數(shù)

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        masterNo

        輸入

        主軸序列號(0~N)

        masterType

        輸入

        主軸類型

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

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

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

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

         

        (6)獲取FOLLOW主軸參數(shù)

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        pMasterNo

        輸出

        主軸序列號(0~N)

        pMasterType

        輸出

        主軸類型,見宏定義

         

        (7)設(shè)置FOLLOW的循環(huán)執(zhí)行次數(shù)

        NMC_MtFollowSetLoopCount(HAND axisHandle, long loopCnt);

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        loopCnt

        輸入

        循環(huán)次數(shù)

         

        (8)獲取FOLLOW的循環(huán)執(zhí)行次數(shù)

        NMC_MtFollowGetLoopCount(HAND axisHandle, long *pLoopCnt);

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        ploopCnt

        輸出

        循環(huán)次數(shù)

         

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

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        eventType

        輸入

        1:表示調(diào)用啟動指令以后立即啟動

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

        masterDir

        輸入

        穿越啟動時,主軸的運(yùn)動方向:1主軸正向運(yùn)動,-1 主軸負(fù)向運(yùn)動

        pos

        輸入

        穿越位置

         

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

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        pEventType

        輸出

        1 表示調(diào)用啟動指令以后  立即啟動

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

        pMasterDir

        輸出

        穿越啟動時,主軸的運(yùn)動方向:1 主軸正向運(yùn)動,-1 主軸負(fù)向運(yùn)動

        pPos

        輸出

        穿越位置

         

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

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        pSpace

        輸出

        空間大小

        fifoNo

        輸入

        fifo號,0或1

         

        (12)設(shè)置FOLLOW的數(shù)據(jù)

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        masterPos

        輸入

        主軸位移

        slavePos

        輸入

        從軸位移

        type

        輸入

        數(shù)據(jù)段類型:0普通段,默認(rèn);1勻速段;2 減速到 0 段;3保持 FIFO 之間速度連續(xù)

        fifoNo

        輸入

        fifo號,0或1

         

        (13)清除FOLLOW對應(yīng)fifo號的數(shù)據(jù)

        NMC_MtFollowClear(HAND axisHandle, short fifoNo);

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        fifoNo

        輸入

        fifo號,0或1

         

        (14)啟動Follow運(yùn)動

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        syncAxCnts

        輸入

        不包括axisHandle   的其他同步啟動軸數(shù)量

        pSyncAxArray

        輸入

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

         

        (15)切換Follow運(yùn)動的fifo號

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

        參數(shù)

        輸入/輸出

        描述

        axisHandle

        輸入

        從軸句柄

        syncAxCnts

        輸入

        不包括axisHandle   的其他同步進(jìn)行fifo切換的軸數(shù)量

        pSyncAxArray

        輸入

        其他同步進(jìn)行fifo切換的軸的序號:0~N

         

        3)應(yīng)用案例

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


        第一段

        第二段

        第三段

        主軸位置

        20000

        20000

        20000

        從軸位置

        10000

        20000

        10000

         

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

         

        //函數(shù)返回值錯誤

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

         

        short rtn = 0;

        //啟動主軸JOG運(yùn)動, 速度脈沖/ms, 加、減速度為脈沖/ms^2

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

        RTN_ERR

        //設(shè)置軸二的運(yùn)動模式為FOllow模式

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

        RTN_ERR

        //清空從軸FIFO數(shù)據(jù)

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

        RTN_ERR

        //設(shè)置跟隨主軸的規(guī)劃位置

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

        RTN_ERR

        //設(shè)置跟隨數(shù)據(jù)

        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

        //設(shè)置為無限循環(huán)

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

        RTN_ERR

        //設(shè)置跟隨條件, 主軸正向運(yùn)動到位置時啟動

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

        RTN_ERR

        //啟動Follow運(yùn)動

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

        RTN_ERR

        //跟隨運(yùn)動過程中可調(diào)用NMC_MtFollowGetLoopCount查詢循環(huán)執(zhí)行次數(shù)

        return rtn;

         

         

        3. 注意事項(xiàng)

        首先使用GCS.exe工具測試數(shù)控機(jī)床是否達(dá)到安全啟動要求;

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

        文檔只挑選常用功能,更多功能請關(guān)注頭文件,在里面做了詳細(xì)的注釋;

        如有其他疑問,請聯(lián)系技術(shù)。

         


        銷售服務(wù)熱線:13510269529 張先生 電子郵箱:sales@gcauto.com.cn 官方網(wǎng)址:www.joblessfreaks.com 辦公地址:廣東省深圳市寶安區(qū)新安街道隆昌路2號甲岸科技園1號樓6樓
        主站蜘蛛池模板: 精品无码人妻一区二区免费蜜桃| 亚洲一区二区三区四区视频| 国产成人精品视频一区二区不卡| 日韩在线视频不卡一区二区三区| 国产一区在线电影| 麻豆一区二区三区蜜桃免费| 久久精品国产一区二区三区不卡| 麻豆一区二区三区蜜桃免费| 亚洲综合一区二区精品导航| 亚州AV综合色区无码一区| 国产aⅴ一区二区三区| 亚洲国产情侣一区二区三区| 亚洲一区二区三区在线播放| 日本在线视频一区二区三区| 亚洲A∨无码一区二区三区| 日韩在线视频不卡一区二区三区 | 国产日韩精品视频一区二区三区| 日本中文字幕在线视频一区| 中文字幕一区二区人妻性色 | 69久久精品无码一区二区| 亚洲综合无码一区二区痴汉| 激情内射日本一区二区三区| 日韩精品一区二区三区影院 | 亚洲线精品一区二区三区| 在线观看视频一区二区| 成人精品一区二区三区校园激情| 日本免费一区二区三区 | 3d动漫精品成人一区二区三| 国模一区二区三区| 成人国内精品久久久久一区| 人妻无码一区二区三区AV| 日本一区二区三区精品中文字幕| 久久国产午夜一区二区福利| 日本一区精品久久久久影院| 久久久久一区二区三区| 亚洲丰满熟女一区二区v| 精品无码人妻一区二区免费蜜桃 | 伊人久久大香线蕉AV一区二区| 波多野结衣一区二区| 精品一区中文字幕| 亚洲AV网一区二区三区|