转载连接: https://blog.csdn.net/qq_30567891/article/details/80236106
运动模式是指规划一个或多个轴运动的方式。 运动控制器支持的运动模式有点位运动模式、 Jog运动模式、电子齿轮(即 Gear) 运动模式和插补运动模式
GT_PrfTrap | 设置指定轴为点位模式 |
GT_PrfJog | 设置指定轴为 Jog 模式 |
GT_PrfGear | 设置指定轴为电子齿轮模式 |
GT_GetPrfMode | 查询指定轴的运动模式 |
在设置或切换运动模式时,要保证轴处于规划静止状态。如果轴正在运动,请先调用GT_Stop 指令停止一个或多个轴的运动,然后再调用上表中的指令切换到想要的运动模式下。
一·、点位模式(PT)
每一个轴在规划静止时都可以设置为点位运动。在点位运动模式下,各轴可以独立设置目标位置、目标速度、加速度、减速度、起跳速度、平滑时间等运动参数,能够独立运动或停止。
GT_PrfTrap | 设置指定轴为点位运动模式 |
GT_SetTrapPrm | 设置点位运动模式下的运动参数 |
GT_GetTrapPrm | 读取点位运动模式下的运动参数 |
GT_SetPos | 设置目标位置 |
GT_GetPos | 读取目标位置 |
GT_SetVel | 设置目标速度 |
GT_GetVel | 读取目标速度 |
GT_Update | 启动点位运动 |
JOG模式关键程序步骤:
(1)配置运动控制器 --GT_LoadConfig
(2)将 AXIS 轴设为点位模式 --GT_PrfTrap
(3)设置需要修改的运动参数 --GT_GetTrapPrm
public struct TTrapPrm
{
public double acc;//加速度
public double dec;//减速度
public double velStart;//起始速度
public short smoothTime;//平滑时间
}
(4)设置 AXIS 轴的目标位置 --GT_SetPos
(5)设置 AXIS 轴的目标速度 --GT_SetVel
(6)启动AXIS轴运动 --GT_Update
(7)等待AXIS轴规划停止
(8)电机伺服关闭 --GT_AxisOff
例程:将第 1 轴设定为点位运动模式,并且以速度 50pulse/ms,加速度 0.25pulse/ms2,减速度0.125pulse/ms2,平滑时间为 25ms 的运动参数正向运动 50000 个脉冲。
二、JOG运动模式
在 Jog 运动模式下,各轴可以独立设置目标速度、加速度、减速度、平滑系数等运动参数,能够独立运动或停止
GT_PrfJog | 设置指定轴为 Jog 运动模式 |
GT_SetJogPrm | 设置 Jog 运动模式下的运动参数 |
GT_GetJogPrm | 读取 Jog 运动模式下的运动参数 |
GT_SetVel | 设置目标速度 |
GT_GetVel | 读取目标速度 |
GT_Update | 启动 Jog 运动 |
JOG模式关键程序步骤:
(1)配置运动控制器 --GT_LoadConfig
(2)将 AXIS 轴设为JOG模式 --GT_PrfJog
(3)设置JOG运动参数 --GT_SetJogPrm
public struct TJogPrm
}
(4)设目标速度 --GT_SetVel
(5)启动 AXIS 轴的运动 --GT_Update
(6)在运动过程中可以更改运动速度 --GT_SetVel GT_Update
(7)伺服关闭 --GT_AxisOff三、电子齿轮模式(Gear)
电子齿轮模式能够将两轴或多轴联系起来,实现精确的同步运动,从而替代传统的机械齿轮连接。
我们把被跟随的轴叫主轴,把跟随的轴叫从轴。电子齿轮模式下, 1 个主轴能够驱动多个从轴,从轴可以跟随主轴的规划位置、编码器位置。
传动比:主轴速度与从轴速度的比例。电子齿轮模式能够灵活的设置传动比,节省机械系统的安装时间。当主轴速度变化时,从轴会根据设定好的传动比自动改变速度。电子齿轮模式也能够在运动过程中修改传动比。
GT_PrfGear | 设置指定轴为电子齿轮运动模式 |
GT_SetGearMaster | 设置电子齿轮运动跟随主轴 |
GT_GetGearMaster | 读取电子齿轮运动跟随主轴 |
GT_SetGearRatio | 设置电子齿轮比 |
GT_GetGearRatio | 读取电子齿轮比 |
GT_GearStart | 启动电子齿轮运动 |
Gear模式关键程序步骤:
1、控制卡配置
(1)配置运动控制器 --GT_LoadConfig
2、主轴配置
(1)将 AXIS 轴设为JOG模式 --GT_PrfJog
(2)设置JOG运动参数 --GT_SetJogPrm
public struct TJogPrm
{
public double acc;
public double dec;
public double smooth;
}
(3)设目标速度 --GT_SetVel
(4)启动主轴的运动 --GT_Update
3、从轴配置
(1)将从轴设为 Gear 模式 --GT_PrfGear
(2)设置主轴,默认跟随主轴规划位置 --GT_SetGearMaster(SLAVE, MASTER)
(3)设置从轴的传动比和离合区 --GT_SetGearRatio(SLAVE, 2, 1, 100000)
说明:
1) 调 用 GT_SetGearRatio(short profile, long masterEven, long slaveEven, long masterSlope)
指令来设置传动比和离合区。 profile 是从轴轴号; masterEven 是主轴位
移, slaveEven 是从轴位移, masterEven/slaveEven 等于传动比; slope 是主轴离合
区位移,即主轴在离合区内走过的位移,用户应自行计算出来。
2) 如果从轴轴号为 slave,当主轴位移 alpha 时从轴位移 beta,主轴运动 slope 位移后从
轴到达设定传动比,应当调用以下指令:GT_SetGearRatio(slave, alpha, beta, slope);
(4)启动从轴 --GT_GearStart
示例:主轴为 Jog 模式,从轴为电子齿轮模式,传动比为主轴速度:从轴速度=2: 1,主轴运动离合区位移后(图中阴影部分的区域),从轴达到设定的传动比。
四、插补运动模式
GT_SetCrdPrm | 设置坐标系参数,确立坐标系映射,建立坐标系 |
GT_GetCrdPrm | 查询坐标系参数 |
GT_CrdData | 向插补缓存区增加插补数据 |
GT_LnXY | 缓存区指令,二维直线插补 |
GT_LnXYZ | 缓存区指令,三维直线插补 |
GT_LnXYZA | 缓存区指令,四维直线插补 |
GT_LnXYG0 | 缓存区指令,二维直线插补(终点速度始终为 0) |
GT_LnXYZG0 | 缓存区指令,三维直线插补(终点速度始终为 0) |
GT_LnXYZAG0 | 缓存区指令,四维直线插补(终点速度始终为 0) |
GT_ArcXYR | 缓存区指令, XY 平面圆弧插补(以终点位置和半径为输入参数) |
GT_ArcXYC | 缓存区指令, XY 平面圆弧插补(以终点位置和圆心位置为输入参数) |
GT_ArcYZR | 缓存区指令, YZ 平面圆弧插补(以终点位置和半径为输入参数) |
GT_ArcYZC | 缓存区指令, YZ 平面圆弧插补(以终点位置和圆心位置为输入参数) |
GT_ArcZXR | 缓存区指令, ZX 平面圆弧插补(以终点位置和半径为输入参数) |
GT_ArcZXC | 缓存区指令, ZX 平面圆弧插补(以终点位置和圆心位置为输入参数) |
GT_BufIO | 缓存区指令,缓存区内数字量 IO 输出设置指令 |
GT_BufDelay | 缓存区指令,缓存区内延时设置指令 |
GT_BufDA | 缓存区指令,缓存区内输出 DA 值 |
GT_BufLmtsOn | 缓存区指令,缓存区内有效限位开关 |
GT_BufLmtsOff | 缓存区指令,缓存区内无效限位开关 |
GT_BufSetStopIo | 缓存区指令,缓存区内设置 axis 的停止 IO 信息 |
GT_BufMove | 缓存区指令,实现刀向跟随功能,启动某个轴点位运动 |
GT_BufGear | 缓存区指令,实现刀向跟随功能,启动某个轴跟随运动 |
GT_CrdSpace | 查询插补缓存区剩余空间 |
GT_CrdClear | 清除插补缓存区内的插补数据 |
GT_CrdStart | 启动插补运动 |
GT_CrdStatus | 查询插补运动坐标系状态 |
GT_SetUserSegNum | 缓存区指令,设置自定义插补段段号 |
GT_GetUserSegNum | 读取自定义插补段段号 |
GT_GetRemainderSegNum | 读取未完成的插补段段数 |
GT_SetOverride | 设置插补运动目标合成速度倍率 |
GT_SetCrdStopDec | 设置插补运动平滑停止、急停合成加速度 |
GT_GetCrdStopDec | 查询插补运动平滑停止、急停合成加速度 |
GT_GetCrdPos | 查询该坐标系的当前坐标位置值 |
GT_GetCrdVel | 查询该坐标系的合成速度值 |
GT_InitLookAhead | 初始化插补前瞻缓存区 |
使用插补模式需要至少两步操作:建立坐标系和向缓存区存入数据。下面分别就这两个步骤分别进行详细讲解。
(一)建立坐标系
建立坐标系就是初始化 TCrdPrm 结构体。
例程:建立了一个二维坐标系,规划轴 1 对应为 x 轴,规划轴 2 对应为 y 轴,坐标系原点的规划位置是(100, 100), 单位: pulse,在此坐标系内运动的最大合成速度为 500pulse/ms,最大合成加速度为 1pulse/ms^2, 最小匀速时间为 50ms。
(二)向缓存区存入数据
步骤:
(a)首先清除缓存区中的数据。--GT_CrdClear(坐标系号,缓冲区号)
(b)向对应坐标系的相应缓冲区添加运行或动作数据。 --GT_ArcXYR,GT_LnXYZG0,GT_LnXY,GT_BufDelay等
(c)启动插补运动。 --GT_CrdStart
(1)直线插补例程
假设某数控机床刀具在 xy 平面从原点出发,走一段如图 6-12 所示的正六边形轨迹。一共需要
走七段轨迹,图中标号已标出。每走完一段轨迹会输出一次 IO 信号,并且暂停 400ms。
(2)圆弧插补指令分为两种:
a) 半径描述方法 --GT_ArcXYR、 GT_ArcYZR、 GT_ArcZXR
b) 圆心坐标描述方法 -- GT_ArcXYC、 GT_ArcYZC、 GT_ArcZXC