高川运动控制卡功能系列----电子凸轮
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.gcauto.com.cn 办公地址:广东省深圳市宝安区新安街道隆昌路2号甲岸科技园1号楼6楼