Browse Source

update kollmorgen axis stop position routine

chenkui 2 days ago
parent
commit
cd0fc9efad

+ 8 - 1
PunkHPX8_RT/Devices/AXIS/Kollmorgen/KollmorgenStopPositionRoutine.cs

@@ -17,6 +17,9 @@ namespace PunkHPX8_RT.Devices.AXIS.Kollmorgen
             Delay,
             WriteTargePosition,
             NoneModeOfOperation,
+            QuickStop,
+            Control6,
+            Control7,
             EnableOperation,
             End
         }
@@ -48,11 +51,15 @@ namespace PunkHPX8_RT.Devices.AXIS.Kollmorgen
 
         public RState Monitor()
         {
-            Runner.Run(StopPositionStep.SetHaltControlWord, () => { return _beckhoffCommonAxis.WriteControlWord(0X12F); }, () => { return CheckControlWord(0X12F); }, 1000)
+            Runner.Run(StopPositionStep.SetHaltControlWord, () => { return _beckhoffCommonAxis.WriteControlWord(0X10F); }, () => { return CheckControlWord(0X10F); }, 1000)
                 .WaitWithStopCondition(StopPositionStep.CheckStop, CheckStop, CheckErrorOrWarning, _timeout)
                 .Delay(StopPositionStep.Delay,_delay_1s)
                 .Run(StopPositionStep.WriteTargePosition, () => { return WriteTargetPosition(); }, NullFun, 100)
                 .Run(StopPositionStep.NoneModeOfOperation, () => { return _beckhoffCommonAxis.WriteModeOfMode(AxisModeOfOperation.None); }, () => { return CheckModeOfOperation((byte)AxisModeOfOperation.None); }, 1000)
+                .Run(StopPositionStep.QuickStop, () => { return _beckhoffCommonAxis.WriteControlWord(0x02); }, () => { return CheckControlWord(0x02); }, 1000)
+                .Run(StopPositionStep.Control6, () => { return _beckhoffCommonAxis.WriteControlWord(0x06); }, () => { return CheckControlWord(0x06); }, 1000)
+                .Run(StopPositionStep.Control7, () => { return _beckhoffCommonAxis.WriteControlWord(0x07); }, () => { return CheckControlWord(0x07); }, 1000)
+
                 .Run(StopPositionStep.EnableOperation, () => { return _beckhoffCommonAxis.WriteControlWord(0x0F); }, () => { return CheckControlWord(0x0F); }, 1000)
               
                 .End(StopPositionStep.End, NullFun, 100);