轴增加平滑停止和紧急停止参数

master
lhiven 5 months ago
parent 4058a492ee
commit 5bdaee2dcd

@ -71,7 +71,7 @@ namespace Rs.Motion.Base
return ErrorCode.Ok;
}
public virtual ErrorCode Stop()
public virtual ErrorCode Stop(bool smoothStop = true)
{
return ErrorCode.Ok;
}

@ -189,7 +189,7 @@ namespace Rs.Motion.GugaoEcat
/// 停止运动
/// </summary>
/// <returns></returns>
public override ErrorCode Stop()
public override ErrorCode Stop(bool smoothStop = true)
{
if (!cardManager.IsInitialized)
{
@ -197,7 +197,15 @@ namespace Rs.Motion.GugaoEcat
}
//int axes = 1 << m_axis_config.AxisId;
//int option = 1 << m_axis_config.AxisId;
if(smoothStop)
{
apiResult = mc_ecat.GTN_Stop(core, 1 << Config.AxisId - 1, 0 << Config.AxisId - 1);//option 对应位1表示紧急停止 0 为平滑停止
}
else
{
apiResult = mc_ecat.GTN_Stop(core, 1 << Config.AxisId - 1, 1 << Config.AxisId - 1);//option 对应位1表示紧急停止 0 为平滑停止
}
if (apiResult != 0)
return ErrorCode.Fail;
else

@ -231,7 +231,7 @@ namespace Rs.Motion.GugaoPulse
/// 停止运动
/// </summary>
/// <returns></returns>
public override ErrorCode Stop()
public override ErrorCode Stop(bool smoothStop=true)
{
if (!cardManager.IsInitialized)
{
@ -239,7 +239,15 @@ namespace Rs.Motion.GugaoPulse
}
//int axes = 1 << m_axis_config.AxisId;
//int option = 1 << m_axis_config.AxisId;
if(smoothStop)
{
apiResult = mc_pulse.GT_Stop((short)Config.CardId, 1 << Config.AxisId - 1, 0 << Config.AxisId - 1);//option 对应位1表示紧急停止 0 为平滑停止
}
else
{
apiResult = mc_pulse.GT_Stop((short)Config.CardId, 1 << Config.AxisId - 1, 1 << Config.AxisId - 1);//option 对应位1表示紧急停止 0 为平滑停止
}
if (apiResult != 0)
return ErrorCode.Fail;
else
@ -376,6 +384,12 @@ namespace Rs.Motion.GugaoPulse
trapPrm.acc = fAcc;
trapPrm.dec = fDec;
trapPrm.velStart = fStart;
short smoothtime = (short)(Config.STime * 1000);
if(smoothtime>50)
{
smoothtime=50;
}
trapPrm.smoothTime = smoothtime;
apiResult = mc_pulse.GT_SetTrapPrm((short)Config.CardId, (short)Config.AxisId, ref trapPrm);//设置点位运动参数
if (apiResult != 0)
{

@ -151,13 +151,20 @@ namespace Rs.Motion.Leisai
/// 停止运动
/// </summary>
/// <returns></returns>
public override ErrorCode Stop()
public override ErrorCode Stop(bool smoothStop = true)
{
if (!cardManager.IsInitialized)
{
return ErrorCode.CardNotInit;
}
if(smoothStop)
{
apiResult = LTDMC.dmc_stop(Config.CardId, Config.AxisId, 0);
}
else
{
apiResult = LTDMC.dmc_stop(Config.CardId, Config.AxisId, 1);
}
if (apiResult != 0)
return ErrorCode.Fail;
else

@ -246,13 +246,20 @@ namespace Rs.Motion.GugaoEcat
/// 停止运动
/// </summary>
/// <returns></returns>
public override ErrorCode Stop()
public override ErrorCode Stop(bool smoothStop = true)
{
if (!cardManager.IsInitialized)
{
return ErrorCode.CardNotInit;
}
if(smoothStop)
{
m_apiResult = ZTM.ZT_Stop(Config.CardMc, (uint)(1 << Config.AxisId));
}
else
{
m_apiResult = ZTM.ZT_EStop(Config.CardMc, (uint)(1 << Config.AxisId));
}
if (m_apiResult != 0)
return ErrorCode.Fail;
else

Loading…
Cancel
Save