高川運(yùn)動(dòng)控制卡功能系列----電子凸輪
      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)造的凸輪曲線來(lái)模擬機(jī)械凸輪,以達(dá)到機(jī)械凸輪系統(tǒng)相同凸輪軸與主軸之間相對(duì)運(yùn)動(dòng)的軟件系統(tǒng)。

      1. 基本介紹

      1.1 基本原理

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

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

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

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

      1.2 基本特點(diǎn)

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

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

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

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

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

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

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

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

      同步的啟動(dòng)可以配置為立即啟動(dòng),也可以配置為主軸穿越某個(gè)位置時(shí)自動(dòng)啟動(dòng);

      2. 應(yīng)用講解

      2.1 硬件部分

      2.2 軟件部分

      1)工具介紹

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

      圖2.2.1 電子凸輪測(cè)試

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

      2)指令介紹

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

      電子凸輪

      函數(shù)原形

      函數(shù)說(shuō)明

      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的的啟動(dòng)事件

      NMC_MtFollowGetEvent

      獲取FOLLOW的啟動(dòng)事件

      NMC_MtFollowGetSpace

      獲取FOLLOWfifo剩余空間

      NMC_MtFollowPushData

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

      NMC_MtFollowClear

      清除FOLLOW對(duì)應(yīng)fifo號(hào)的數(shù)據(jù)

      NMC_MtFollowStart

      啟動(dòng)Follow運(yùn)動(dòng)

      NMC_MtFollowSwitch

      切換Follow運(yùn)動(dòng)的fifo號(hào)

       

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

      NMC_MtSetPrfMode( HAND axisHandle,  short mode );

      參數(shù)

      輸入/輸出

      描述

      axisHandle

      輸入

      軸句柄

      mode

      輸入

      各軸的規(guī)劃模式

      #define MT_NONE_PRF_MODE     (-1) // 無(wú)效

      #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)    // 龍門(mén)跟隨模式

      #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)系模式不需要通過(guò)NMC_MtSetPrfMode設(shè)置

       

      (2)單軸JOG運(yùn)動(dòng)

      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)動(dòng)前先清除軸狀態(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

      輸入

      主軸序列號(hào)(0~N)

      masterType

      輸入

      主軸類(lèi)型

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

      #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

      輸出

      主軸序列號(hào)(0~N)

      pMasterType

      輸出

      主軸類(lèi)型,見(jiàn)宏定義

       

      (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的的啟動(dòng)事件

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

      參數(shù)

      輸入/輸出

      描述

      axisHandle

      輸入

      從軸句柄

      eventType

      輸入

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

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

      masterDir

      輸入

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

      pos

      輸入

      穿越位置

       

      (10)獲取FOLLOW的的啟動(dòng)事件

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

      參數(shù)

      輸入/輸出

      描述

      axisHandle

      輸入

      從軸句柄

      pEventType

      輸出

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

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

      pMasterDir

      輸出

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

      pPos

      輸出

      穿越位置

       

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

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

      參數(shù)

      輸入/輸出

      描述

      axisHandle

      輸入

      從軸句柄

      pSpace

      輸出

      空間大小

      fifoNo

      輸入

      fifo號(hào),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ù)段類(lèi)型:0普通段,默認(rèn);1勻速段;2 減速到 0 段;3保持 FIFO 之間速度連續(xù)

      fifoNo

      輸入

      fifo號(hào),0或1

       

      (13)清除FOLLOW對(duì)應(yīng)fifo號(hào)的數(shù)據(jù)

      NMC_MtFollowClear(HAND axisHandle, short fifoNo);

      參數(shù)

      輸入/輸出

      描述

      axisHandle

      輸入

      從軸句柄

      fifoNo

      輸入

      fifo號(hào),0或1

       

      (14)啟動(dòng)Follow運(yùn)動(dòng)

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

      參數(shù)

      輸入/輸出

      描述

      axisHandle

      輸入

      從軸句柄

      syncAxCnts

      輸入

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

      pSyncAxArray

      輸入

      其他同步啟動(dòng)軸的序號(hào):0~N

       

      (15)切換Follow運(yùn)動(dòng)的fifo號(hào)

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

      參數(shù)

      輸入/輸出

      描述

      axisHandle

      輸入

      從軸句柄

      syncAxCnts

      輸入

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

      pSyncAxArray

      輸入

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

       

      3)應(yīng)用案例

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


      第一段

      第二段

      第三段

      主軸位置

      20000

      20000

      20000

      從軸位置

      10000

      20000

      10000

       

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

       

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

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

       

      short rtn = 0;

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

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

      RTN_ERR

      //設(shè)置軸二的運(yùn)動(dòng)模式為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è)置為無(wú)限循環(huán)

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

      RTN_ERR

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

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

      RTN_ERR

      //啟動(dòng)Follow運(yùn)動(dòng)

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

      RTN_ERR

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

      return rtn;

       

       

      3. 注意事項(xiàng)

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

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

      文檔只挑選常用功能,更多功能請(qǐng)關(guān)注頭文件,在里面做了詳細(xì)的注釋?zhuān)?/span>

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

       


      銷(xiāo)售服務(wù)熱線:13510269529 張先生 電子郵箱:sales@gcauto.com.cn 官方網(wǎng)址:www.cpayl.com 辦公地址:廣東省深圳市寶安區(qū)新安街道隆昌路2號(hào)甲岸科技園1號(hào)樓6樓
      主站蜘蛛池模板: 四虎一区二区成人免费影院网址| 久久久国产一区二区三区 | 亚洲av乱码一区二区三区香蕉| 日韩制服国产精品一区| 国产一区二区在线看| 亚洲成a人一区二区三区| 亚洲国产精品一区二区三区久久| 亚洲一区二区三区丝袜| 免费看AV毛片一区二区三区| 亚洲高清偷拍一区二区三区| 亚洲一区免费观看| 精品国产AV无码一区二区三区| 国产精品一区二区三区99| 久久国产午夜一区二区福利| 亚洲一区二区三区在线观看网站| 日韩一区二区三区在线观看| 亚洲国产精品一区二区第一页| 亚洲一区中文字幕在线电影网| 美女视频免费看一区二区 | 日韩一区在线视频| 国产精品无圣光一区二区| 亚洲一区二区三区丝袜| 综合久久一区二区三区 | 亚洲天堂一区在线| 精品一区二区三区在线播放| 国产av一区二区三区日韩| 无码少妇一区二区三区芒果| 国产一区二区在线看| 国产精品日韩一区二区三区| 麻豆一区二区在我观看| 无码人妻久久一区二区三区蜜桃 | 一区二区精品在线观看| 亚洲视频一区二区在线观看| 一区二区精品视频| 中文乱码字幕高清一区二区| 精品乱子伦一区二区三区高清免费播放| 区三区激情福利综合中文字幕在线一区 | 日韩成人无码一区二区三区| 免费精品一区二区三区在线观看| 国产免费一区二区三区VR| 日韩精品成人一区二区三区|