niuyx 1 месяц назад
Родитель
Сommit
ac86793bf6

+ 1 - 1
CyberX8_Simulator/Devices/WagoSocketSimulator.cs

@@ -63,7 +63,7 @@ namespace CyberX8_Simulator.Devices
                         break;
                     case "r_DPUF_A_CHUCK_A_VAC":
                     case "r_DPUF_A_CHUCK_B_VAC":
-                        AIShorts[AINameIndexDic[name]] = !value ? (short)0x2AF8 : (short)0x32C8;
+                        AIShorts[AINameIndexDic[name]] = !value ? (short)0x0C80 : (short)0x32C8;
                         break;
                     case "r_LOADERA_BERNOULLI_PRESSURE":
                     case "r_LOADERB_BERNOULLI_PRESSURE":

+ 9 - 4
Framework/Common/Simulator/MotorSimulator.cs

@@ -170,6 +170,7 @@ namespace MECF.Framework.Common.Simulator
         private void MotorMotionSimulator(KeyValuePair<string, SimulatorMotionData> motor)
         {
             SimulatorMotionData motionData = motor.Value;
+            string name = motor.Key;
             //上电检查
             if (!motionData.SwitchSignal) return;
             if (motionData.HomingSignal)
@@ -178,7 +179,7 @@ namespace MECF.Framework.Common.Simulator
             }
             else
             {
-                PositionOperation(motionData);
+                PositionOperation(motionData, name);
             }            
         }
         
@@ -202,7 +203,7 @@ namespace MECF.Framework.Common.Simulator
         /// GoToPosition操作
         /// </summary>
         /// <param name="data"></param>
-        private void PositionOperation(SimulatorMotionData motionData)
+        private void PositionOperation(SimulatorMotionData motionData, string name)
         {
             if (motionData.MotionSignal)
             {
@@ -213,7 +214,9 @@ namespace MECF.Framework.Common.Simulator
                 if (motionData.ActualPosition < motionData.TargetPosition)
                 {
                     //motionData.ActualPosition += (motionData.ActualVelocity * TIMER_INTERVAL / 1000);
-                    motionData.ActualPosition += ((motorStep / MOTOR_STEP_FACTOR < 100) ? 100 : motorStep / MOTOR_STEP_FACTOR);
+                    int step = 100;
+                    if (name.Contains("LS")) step = 1000;
+                    motionData.ActualPosition += ((motorStep / MOTOR_STEP_FACTOR < step) ? step : motorStep / MOTOR_STEP_FACTOR);
                     bool fwdLimit = motionData.FwdSoftLimit != 0 ? motionData.ActualPosition >= motionData.FwdSoftLimit : false;
                     if (fwdLimit || motionData.ActualPosition >= motionData.TargetPosition)
                     {
@@ -227,7 +230,9 @@ namespace MECF.Framework.Common.Simulator
                 //反向运动
                 else if (motionData.ActualPosition > motionData.TargetPosition)
                 {
-                    motionData.ActualPosition -= ((motorStep / MOTOR_STEP_FACTOR < 100) ? 100 : motorStep / MOTOR_STEP_FACTOR);
+                    int step = 100;
+                    if (name.Contains("LS")) step = 1000;
+                    motionData.ActualPosition -= ((motorStep / MOTOR_STEP_FACTOR < step) ? step : 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)