Browse Source

Modify MotorSimulator;

niuyx 1 month ago
parent
commit
fc8bab7780

+ 2 - 2
CyberX8_RT/Config/Station/StationPositionsCfg_Simulator.xml

@@ -42,7 +42,7 @@
 			</Stations>
 		</Axis>
 		<Axis Name="Loader1.LSA">
-			<ToleranceDefault>0.04</ToleranceDefault>
+			<ToleranceDefault>0.2</ToleranceDefault>
 			<Stations>
 				<Station Name="Loader1.LSA.Setup200" Position="2.57" ModifiedDate="2025-02-21 16:44:31.056" />
 				<Station Name="Loader1.LSA.Lock200" Position="1.82" ModifiedDate="2025-02-25 10:06:03.656" />
@@ -56,7 +56,7 @@
 			</Stations>
 		</Axis>
 		<Axis Name="Loader1.LSB">
-			<ToleranceDefault>0.04</ToleranceDefault>
+			<ToleranceDefault>0.2</ToleranceDefault>
 			<Stations>
 				<Station Name="Loader1.LSB.Setup200" Position="2" ModifiedDate="2025-02-25 14:51:06.154" />
 				<Station Name="Loader1.LSB.Lock200" Position="1" ModifiedDate="2025-02-25 14:51:30.953" />

+ 1 - 1
CyberX8_RT/Devices/Loader/LoaderUnloadRoutine.cs

@@ -104,7 +104,7 @@ namespace CyberX8_RT.Devices.Loader
                 .Run(UnloadStep.LSGotoSetUp, () => { return AxisPosition(_lsAxis,$"Setup{_waferSize}"); }, NullFun, _delay_1ms)
                 .WaitWithStopCondition(UnloadStep.LSGotoSetUpWait, () => { return _lsAxis.Status == RState.End; }, 
                     ()=>CheckAxisMotionStopStatus(_lsAxis))
-                //3. Shuttle Goto OPEN
+                //3. Shuttle Goto IN
                 .Run(UnloadStep.ShuttleGotoIN, () => { return AxisPosition(_shuttleAxis, "IN"); }, NullFun, _delay_1ms)
                 .WaitWithStopCondition(UnloadStep.ShuttleGotoINWait, () => { return _shuttleAxis.Status == RState.End; },
                     () => CheckAxisMotionStopStatus(_shuttleAxis))

+ 6 - 5
Framework/Common/Simulator/MotorSimulator.cs

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