Exemplo n.º 1
0
        //复位
        public void Reset(byte ADDR = SMC_Controller_Model.ADDR)
        {
            if (axisType == AXIS_TYPE_E.AXIS_Y)
            {
                Ult.SMC_ManualRightMove(ADDR, axisType);//连续左行
            }
            else
            {
                Ult.SMC_ManualLeftMove(ADDR, axisType);//连续左行
            }
            byte Zero = 0;

            switch (axisType)
            {
            case
                AXIS_TYPE_E.AXIS_X:
                Zero = SMC_Controller_Model.XZERO;
                break;

            case
                AXIS_TYPE_E.AXIS_Y:
                Zero = SMC_Controller_Model.YZERO;
                break;

            case
                AXIS_TYPE_E.AXIS_Z:
                Zero = SMC_Controller_Model.ZZERO;
                break;
            }
            while (!SMC.Controller.SMCController.IsZERO(ADDR, Zero))
            {
                System.Threading.Thread.Sleep(5);
            }
            Ult.SMC_QuickStopMotor(ADDR, AXIS_TYPE_E.AXIS_X);//停止X轴
            //TODO:降低电机速度
            if (axisType == AXIS_TYPE_E.AXIS_Y)
            {
                Ult.SMC_ManualLeftMove(ADDR, axisType);//连续左行
            }
            else
            {
                Ult.SMC_ManualRightMove(ADDR, axisType);//连续左行
            }
            while (!SMC.Controller.SMCController.IsZERO(ADDR, Zero))
            {
                System.Threading.Thread.Sleep(5);
            }

            Ult.SMC_QuickStopMotor(ADDR, axisType);     //停止X轴
            Ult.SMC_ClearMotorPosition(ADDR, axisType); //清除坐标
        }
Exemplo n.º 2
0
 //设置轴当前为原点
 public void ClearMotorPosition()
 {
     Ult.SMC_ClearMotorPosition(SMC_Controller_Model.ADDR, axisType);
 }