diff --git a/Rs.Motion/Base/IAxis.cs b/Rs.Motion/Base/IAxis.cs
index 3027f11..b8f496d 100644
--- a/Rs.Motion/Base/IAxis.cs
+++ b/Rs.Motion/Base/IAxis.cs
@@ -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;
}
diff --git a/Rs.Motion/GugaoEcat/GugaoAxis.cs b/Rs.Motion/GugaoEcat/GugaoAxis.cs
index 52b2cb1..96b9144 100644
--- a/Rs.Motion/GugaoEcat/GugaoAxis.cs
+++ b/Rs.Motion/GugaoEcat/GugaoAxis.cs
@@ -189,7 +189,7 @@ namespace Rs.Motion.GugaoEcat
/// 停止运动
///
///
- 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;
- apiResult = mc_ecat.GTN_Stop(core, 1 << Config.AxisId - 1, 1 << Config.AxisId - 1);//option 对应位1表示紧急停止 0 为平滑停止
+ 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
diff --git a/Rs.Motion/GugaoPulse/GugaoPulseAxis.cs b/Rs.Motion/GugaoPulse/GugaoPulseAxis.cs
index a590acd..6b01322 100644
--- a/Rs.Motion/GugaoPulse/GugaoPulseAxis.cs
+++ b/Rs.Motion/GugaoPulse/GugaoPulseAxis.cs
@@ -231,7 +231,7 @@ namespace Rs.Motion.GugaoPulse
/// 停止运动
///
///
- 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;
- apiResult = mc_pulse.GT_Stop((short)Config.CardId, 1 << Config.AxisId - 1, 1 << Config.AxisId - 1);//option 对应位1表示紧急停止 0 为平滑停止
+ 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)
{
diff --git a/Rs.Motion/Leisai/LeisaiAxis.cs b/Rs.Motion/Leisai/LeisaiAxis.cs
index 765185e..a2f0997 100644
--- a/Rs.Motion/Leisai/LeisaiAxis.cs
+++ b/Rs.Motion/Leisai/LeisaiAxis.cs
@@ -151,13 +151,20 @@ namespace Rs.Motion.Leisai
/// 停止运动
///
///
- public override ErrorCode Stop()
+ public override ErrorCode Stop(bool smoothStop = true)
{
if (!cardManager.IsInitialized)
{
return ErrorCode.CardNotInit;
}
- apiResult = LTDMC.dmc_stop(Config.CardId, Config.AxisId, 0);
+ 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
diff --git a/Rs.Motion/Ztm/ZtmAxis.cs b/Rs.Motion/Ztm/ZtmAxis.cs
index 915ba2e..aa2a032 100644
--- a/Rs.Motion/Ztm/ZtmAxis.cs
+++ b/Rs.Motion/Ztm/ZtmAxis.cs
@@ -246,13 +246,20 @@ namespace Rs.Motion.GugaoEcat
/// 停止运动
///
///
- public override ErrorCode Stop()
+ public override ErrorCode Stop(bool smoothStop = true)
{
if (!cardManager.IsInitialized)
{
return ErrorCode.CardNotInit;
}
- m_apiResult = ZTM.ZT_Stop(Config.CardMc, (uint)(1<