1、原理电子齿轮指的是1个或者多个电机从轴同步跟随一个电机或者编码器主轴同步运动。跟随比例可以是11也可以是M:N任意比例。如果运动控制卡没有该功能2个或者多个轴之间的同步运动只能通过齿轮或者皮带等机械方式完成比较笨重。电子齿轮的出现大大方便了需要同步的场合电机之间的机械传动成本。2、具体代码这里以博派智能的ETH_GAS系列网口运动控制卡为例说明该运动控制卡有2-16路步进/伺服控制接口每路接口都有编码器/脉冲/方向/报警/使能等信号支持自动回零/点位/直线/圆弧插补/PT运动等功能支持高速硬件捕获、比较输出/飞拍、PSO。高端款PMC系列甚至支持RTCP五轴联动Delta/Scara/6轴机器人算法。电子齿轮相关函数一览表API说明MC_PrfGear设置指定轴进入电子齿轮模式MC_SetGearMaster设置电子齿轮运动跟随主轴MC_GetGearMaster读取电子齿轮运动跟随主轴MC_SetGearRatio设置电子齿轮比MC_GetGearRatio获取电子齿轮比MC_GearStart启动电子齿轮运动MC_GearStop停止电子齿轮运动MC_SetGearEvent设置电子齿轮触发事件MC_GetGearEvent获取电子齿轮触发事件MC_SetGearIntervalTime设置电子齿轮平滑系数MC_GetGearIntervalTime获取电子齿轮平滑系数参数详细说明参数详细说明intMC_PrfGear(shortnAxisNum,shortnDir0)nAxisNum轴号nDir无意义固定为0intMC_SetGearMaster(shortnAxisNum,shortnMasterAxisNum,shortnMasterType2)nAxisNum轴号nMasterAxisNum主轴号nMasterType主轴类型2跟随规划1,跟随编码器intMC_GetGearMaster(shortnAxisNum,short*pnMasterAxisNum,short*pMasterTypeNULL)nAxisNum轴号pnMasterAxisNum主轴号pMasterType主轴类型2跟随规划1,跟随编码器intMC_SetGearRatio(shortnAxisNum,longlMasterEven,longlSlaveEven,longlMasterSlope0,longlStopSmoothTime 200)nAxisNum轴号lMasterEven传动比系数,主轴位移单位pulselSlaveEven传动比系数,从轴位移单位pulselMasterSlope主轴离合区位移,单位 pulse 取值范围不能小于0或者等于1lStopSmoothTime脱离离合区缓冲时间单位msintMC_GetGearRatio(shortnAxisNum,long*pMasterEven,long*pSlaveEven,long*pMasterSlope,long*pStopSmoothTime)nAxisNum轴号lMasterEven传动比系数,主轴位移单位pulselSlaveEven传动比系数,从轴位移单位pulselMasterSlope主轴离合区位移,主轴离合区位移,主轴离合区位移,主轴离合区位移,单位 pulselStopSmoothTime脱离离合区缓冲时间单位msintMC_GearStart(longlMask)lMask按位指示需要启动Gear运动的轴号。当bit位为1时表示启动对应的轴Bit7、6、5、4、3、2、1、0对应8轴、7轴、6轴、5轴、4轴、3轴、2轴、1轴intMC_GearStop(longlAxisMask,longlEMGMask)lMask按位指示需要停止Gear运动的轴号。当bit位为1时表示停止对应的轴Bit7~0对应8~1轴lEMGMask按位指示需要立即停止Gear运动的轴号。当bit位为1时表示立即停止对应的轴忽略平滑停止时间当bit位为0时表示平滑停止对应的轴StopSmoothTime时间内平滑停止Bit7~0对应8~1轴intMC_SetGearEvent(shortnAxisNum,shortnEvent,doublestartPara0,doublestartPara1)nAxisNum轴号从1开始nEvent电子齿轮启动触发事件1立即启动电子齿轮2主轴规划或者编码器位置大于等于指定数值时启动电子齿轮3主轴规划或者编码器位置小于等于指定数值时启动电子齿轮4指定IO为ON时启动电子齿轮5指定IO为OFF时启动电子齿轮startPara0电子齿轮触发参数具体含义取决于参数2取决于电子齿轮触发事件当参数2为2或者3编码器位置触发时代表编码器或者规划值当参数2为4或者5IO触发时代表IO端口号startPara1保留固定为0intMC_GetGearEvent(shortnAxisNum,short*pEvent,double*pStartPara0,double*pStartPara1)nAxisNum轴号从1开始nEvent电子齿轮启动触发事件1立即启动电子齿轮2主轴规划或者编码器位置大于等于指定数值时启动电子齿轮3主轴规划或者编码器位置小于等于指定数值时启动电子齿轮4指定IO为ON时启动电子齿轮5指定IO为OFF时启动电子齿轮startPara0电子齿轮触发参数具体含义取决于参数2取决于电子齿轮触发事件当参数2为2或者3编码器位置触发时代表编码器或者规划值当参数2为4或者5IO触发时代表IO端口号startPara1保留固定为0int MC_SetGearIntervalTime(shortnAxisNum,shortnIntervalTime)nAxisNum从轴轴号nIntervalTime滤波系数2~32768越大越平滑不抖动越小跟随性越好误差小需要平衡int MC_GetGearIntervalTime(shortnAxisNum,short*nIntervalTime)nAxisNum从轴轴号nIntervalTime滤波系数2~32768越大越平滑不抖动越小跟随性越好误差小需要平衡例程代码//打开板卡iRes MC_Open(1,192.168.0.200,60000,192.168.0.1,60000);//复位板卡MC_Reset();//关闭编码器捕获脉冲位置如果接了编码器可以屏蔽此段代码MC_EncOff(1);MC_EncOff(2);MC_EncOff(3);MC_EncOff(4);//设置轴3轴4进入电子齿轮模式双向跟随MC_PrfGear(3,0);MC_PrfGear(4,0);//设置轴3轴4跟随轴1的编码器MC_SetGearMaster(3,1,1);MC_SetGearMaster(4,1,1);//设置轴3跟随比例为1比1MC_SetGearRatio(3,1,1,0,0);//设置轴4跟随比例为1比1MC_SetGearRatio(4,1,1,0,0);//设置轴3跟随触发方式为立即开始MC_SetGearEvent(3,1,0,0)//设置轴4跟随触发方式为立即开始MC_SetGearEvent(4,1,0,0)//启动轴3和轴4的跟随MC_GearStart(0X0C);博派智能ETH_GAS系列4轴运动控制卡接线示意图(8轴和16轴篇幅限制没有放上来)博派智能ETH_GAS系列4轴运动控制卡应用示意图(8轴和16轴篇幅限制没有放上来)