|
@@ -29,7 +29,7 @@ namespace MECF.Framework.Common.Simulator
|
|
/// <summary>
|
|
/// <summary>
|
|
/// 定时器间隔(ms)
|
|
/// 定时器间隔(ms)
|
|
/// </summary>
|
|
/// </summary>
|
|
- private const int TIMER_INTERVAL = 10;
|
|
|
|
|
|
+ private const int TIMER_INTERVAL = 50;
|
|
/// <summary>
|
|
/// <summary>
|
|
/// motor step factor
|
|
/// motor step factor
|
|
/// </summary>
|
|
/// </summary>
|
|
@@ -102,9 +102,10 @@ namespace MECF.Framework.Common.Simulator
|
|
{
|
|
{
|
|
//对应电机进行模拟
|
|
//对应电机进行模拟
|
|
MotorMotionSimulator(motorItem);
|
|
MotorMotionSimulator(motorItem);
|
|
|
|
+ //实时更新电机数据
|
|
|
|
+ UpdateVariableValue(_motorNameDataDic);
|
|
}
|
|
}
|
|
- //实时更新电机数据
|
|
|
|
- UpdateVariableValue(_motorNameDataDic);
|
|
|
|
|
|
+
|
|
return true;
|
|
return true;
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// <summary>
|
|
@@ -211,7 +212,7 @@ namespace MECF.Framework.Common.Simulator
|
|
if (motionData.ActualPosition < motionData.TargetPosition)
|
|
if (motionData.ActualPosition < motionData.TargetPosition)
|
|
{
|
|
{
|
|
//motionData.ActualPosition += (motionData.ActualVelocity * TIMER_INTERVAL / 1000);
|
|
//motionData.ActualPosition += (motionData.ActualVelocity * TIMER_INTERVAL / 1000);
|
|
- motionData.ActualPosition += (motorStep / MOTOR_STEP_FACTOR < 1 ? 1 : motorStep / MOTOR_STEP_FACTOR);
|
|
|
|
|
|
+ motionData.ActualPosition += ((motorStep / MOTOR_STEP_FACTOR < 100) ? 100 : motorStep / MOTOR_STEP_FACTOR);
|
|
bool fwdLimit = motionData.FwdSoftLimit != 0 ? motionData.ActualPosition >= motionData.FwdSoftLimit : false;
|
|
bool fwdLimit = motionData.FwdSoftLimit != 0 ? motionData.ActualPosition >= motionData.FwdSoftLimit : false;
|
|
if (fwdLimit || motionData.ActualPosition >= motionData.TargetPosition)
|
|
if (fwdLimit || motionData.ActualPosition >= motionData.TargetPosition)
|
|
{
|
|
{
|
|
@@ -225,7 +226,7 @@ namespace MECF.Framework.Common.Simulator
|
|
//反向运动
|
|
//反向运动
|
|
else if (motionData.ActualPosition > motionData.TargetPosition)
|
|
else if (motionData.ActualPosition > motionData.TargetPosition)
|
|
{
|
|
{
|
|
- motionData.ActualPosition -= (motorStep / MOTOR_STEP_FACTOR < 1 ? 1 : motorStep / MOTOR_STEP_FACTOR);
|
|
|
|
|
|
+ motionData.ActualPosition -= ((motorStep / MOTOR_STEP_FACTOR < 100) ? 100 : motorStep / MOTOR_STEP_FACTOR);
|
|
//motionData.ActualPosition -= (motionData.ActualVelocity * TIMER_INTERVAL / 1000);
|
|
//motionData.ActualPosition -= (motionData.ActualVelocity * TIMER_INTERVAL / 1000);
|
|
bool revLimit = motionData.RevSoftLimit != 0 ? motionData.ActualPosition <= motionData.RevSoftLimit : false;
|
|
bool revLimit = motionData.RevSoftLimit != 0 ? motionData.ActualPosition <= motionData.RevSoftLimit : false;
|
|
if (revLimit || motionData.ActualPosition <= motionData.TargetPosition)
|
|
if (revLimit || motionData.ActualPosition <= motionData.TargetPosition)
|