运动接口增加加速度和减速度

master
lhiven 1 year ago
parent 831816b625
commit 38720cfc7e

@ -81,12 +81,12 @@ namespace Rs.Motion.Base
return ErrorCode.Ok; return ErrorCode.Ok;
} }
public virtual ErrorCode MovePos(double dfPosVal, int percent = 100) public virtual ErrorCode MovePos(double dfPosVal, int percent = 100,double accTime=0,double decTime=0)
{ {
return ErrorCode.Ok; return ErrorCode.Ok;
} }
public virtual ErrorCode MoveOffset(double dfDistVal, int percent = 100) public virtual ErrorCode MoveOffset(double dfDistVal, int percent = 100,double accTime=0,double decTime=0)
{ {
return ErrorCode.Ok; return ErrorCode.Ok;
} }

@ -263,7 +263,7 @@ namespace Rs.Motion.GugaoEcat
/// <param name="nSpeedPercent"></param> /// <param name="nSpeedPercent"></param>
/// <param name="bypassEL"></param> /// <param name="bypassEL"></param>
/// <returns></returns> /// <returns></returns>
public override ErrorCode MovePos(double dfPosVal, int nSpeedPercent = 100) public override ErrorCode MovePos(double dfPosVal, int nSpeedPercent = 100,double accTime=0,double decTime=0)
{ {
if (!cardManager.IsInitialized) if (!cardManager.IsInitialized)
return ErrorCode.CardNotInit; return ErrorCode.CardNotInit;
@ -308,8 +308,8 @@ namespace Rs.Motion.GugaoEcat
MmToPulse(Config.StopSpeed, out double stopSpeedPulse); MmToPulse(Config.StopSpeed, out double stopSpeedPulse);
float fMaxVel = (float)(maxSpeedPulse * dfPercent / 1000.0);//pulse/ms float fMaxVel = (float)(maxSpeedPulse * dfPercent / 1000.0);//pulse/ms
float fAcc = (float)(maxSpeedPulse / Config.AccTime / 1000000.0); float fAcc = (float)(maxSpeedPulse / (accTime == 0 ? Config.AccTime : accTime) / 1000000.0);
float fDec = (float)(maxSpeedPulse / Config.DecTime / 1000000.0); float fDec = (float)(maxSpeedPulse / (decTime == 0 ? Config.DecTime : decTime) / 1000000.0);
float fStart = (float)(minSpeedPulse / 1000.0); float fStart = (float)(minSpeedPulse / 1000.0);
float fStop = (float)(stopSpeedPulse / 1000.0); float fStop = (float)(stopSpeedPulse / 1000.0);
apiResult = mc_ecat.GTN_PrfTrap(core, (short)Config.AxisId);//设置运动模式为点位运动 apiResult = mc_ecat.GTN_PrfTrap(core, (short)Config.AxisId);//设置运动模式为点位运动
@ -356,7 +356,7 @@ namespace Rs.Motion.GugaoEcat
/// <param name="nSpeedPercent"></param> /// <param name="nSpeedPercent"></param>
/// <param name="bypassEL"></param> /// <param name="bypassEL"></param>
/// <returns></returns> /// <returns></returns>
public override ErrorCode MoveOffset(double dfDistVal, int nSpeedPercent = 100) public override ErrorCode MoveOffset(double dfDistVal, int nSpeedPercent = 100, double accTime = 0, double decTime = 0)
{ {
if (!cardManager.IsInitialized) if (!cardManager.IsInitialized)
{ {

@ -300,7 +300,7 @@ namespace Rs.Motion.GugaoPulse
/// <param name="nSpeedPercent"></param> /// <param name="nSpeedPercent"></param>
/// <param name="bypassEL"></param> /// <param name="bypassEL"></param>
/// <returns></returns> /// <returns></returns>
public override ErrorCode MovePos(double dfPosVal, int nSpeedPercent = 4) public override ErrorCode MovePos(double dfPosVal, int nSpeedPercent = 4,double accTime=0,double decTime=0)
{ {
if (!cardManager.IsInitialized) if (!cardManager.IsInitialized)
return ErrorCode.CardNotInit; return ErrorCode.CardNotInit;
@ -348,8 +348,8 @@ namespace Rs.Motion.GugaoPulse
MmToPulse(Config.StopSpeed, out double stopSpeedPulse); MmToPulse(Config.StopSpeed, out double stopSpeedPulse);
float fMaxVel = (float)(maxSpeedPulse * dfPercent / 1000.0);//pulse/ms float fMaxVel = (float)(maxSpeedPulse * dfPercent / 1000.0);//pulse/ms
float fAcc = (float)(maxSpeedPulse / Config.AccTime / 1000000.0); float fAcc = (float)(maxSpeedPulse / (accTime == 0 ? Config.AccTime : accTime) / 1000000.0);
float fDec = (float)(maxSpeedPulse / Config.DecTime / 1000000.0); float fDec = (float)(maxSpeedPulse / (decTime == 0 ? Config.DecTime : decTime) / 1000000.0);
float fStart = (float)(minSpeedPulse / 1000.0); float fStart = (float)(minSpeedPulse / 1000.0);
float fStop = (float)(stopSpeedPulse / 1000.0); float fStop = (float)(stopSpeedPulse / 1000.0);
apiResult = mc_pulse.GT_PrfTrap((short)Config.CardId, (short)Config.AxisId);//设置运动模式为点位运动 apiResult = mc_pulse.GT_PrfTrap((short)Config.CardId, (short)Config.AxisId);//设置运动模式为点位运动
@ -400,7 +400,7 @@ namespace Rs.Motion.GugaoPulse
/// <param name="nSpeedPercent"></param> /// <param name="nSpeedPercent"></param>
/// <param name="bypassEL"></param> /// <param name="bypassEL"></param>
/// <returns></returns> /// <returns></returns>
public override ErrorCode MoveOffset(double dfDistVal, int nSpeedPercent = 100) public override ErrorCode MoveOffset(double dfDistVal, int nSpeedPercent = 100, double accTime = 0, double decTime = 0)
{ {
if (!cardManager.IsInitialized) if (!cardManager.IsInitialized)
{ {

@ -268,7 +268,7 @@ namespace Rs.Motion.GugaoEcat
/// <param name="nSpeedPercent"></param> /// <param name="nSpeedPercent"></param>
/// <param name="bypassEL"></param> /// <param name="bypassEL"></param>
/// <returns></returns> /// <returns></returns>
public override ErrorCode MovePos(double dfPosVal, int nSpeedPercent = 100) public override ErrorCode MovePos(double dfPosVal, int nSpeedPercent = 100, double accTime = 0, double decTime = 0)
{ {
if (!cardManager.IsInitialized) if (!cardManager.IsInitialized)
return ErrorCode.CardNotInit; return ErrorCode.CardNotInit;
@ -316,8 +316,8 @@ namespace Rs.Motion.GugaoEcat
float fMaxVel = (float)(maxSpeedPulse * dfPercent / 1000.0);//pulse/ms float fMaxVel = (float)(maxSpeedPulse * dfPercent / 1000.0);//pulse/ms
//float fAcc = (float)(maxSpeedPulse / Config.AccTime / 1000000.0); //float fAcc = (float)(maxSpeedPulse / Config.AccTime / 1000000.0);
//float fDec = (float)(maxSpeedPulse / Config.DecTime / 1000000.0); //float fDec = (float)(maxSpeedPulse / Config.DecTime / 1000000.0);
float fAcc = (float)(fMaxVel / (Config.AccTime * 1000)); float fAcc = (float)(fMaxVel / (accTime==0?Config.AccTime:accTime * 1000));
float fDec = (float)(fMaxVel / (Config.DecTime * 1000)); float fDec = (float)(fMaxVel / (decTime==0?Config.DecTime:decTime * 1000));
float fStart = (float)(minSpeedPulse / 1000.0); float fStart = (float)(minSpeedPulse / 1000.0);
float fStop = (float)(stopSpeedPulse / 1000.0); float fStop = (float)(stopSpeedPulse / 1000.0);
m_apiResult = ZTM.ZT_MoveA(Config.CardMc, (short)Config.AxisId, (int)dfPos, fStart, fMaxVel, fAcc, fDec, fStop, (ushort)(Config.STime * 1000.0)); m_apiResult = ZTM.ZT_MoveA(Config.CardMc, (short)Config.AxisId, (int)dfPos, fStart, fMaxVel, fAcc, fDec, fStop, (ushort)(Config.STime * 1000.0));
@ -338,7 +338,7 @@ namespace Rs.Motion.GugaoEcat
/// <param name="nSpeedPercent"></param> /// <param name="nSpeedPercent"></param>
/// <param name="bypassEL"></param> /// <param name="bypassEL"></param>
/// <returns></returns> /// <returns></returns>
public override ErrorCode MoveOffset(double dfDistVal, int nSpeedPercent = 100) public override ErrorCode MoveOffset(double dfDistVal, int nSpeedPercent = 100, double accTime = 0, double decTime = 0)
{ {
if (!cardManager.IsInitialized) if (!cardManager.IsInitialized)
{ {

Loading…
Cancel
Save