Exemplo n.º 1
0
        /// <summary>
        /// 配置机器坐标
        /// 返回3 空闲状态;
        /// 返回4 运动状态
        /// </summary>
        /// <param name="handle">设备句柄</param>
        /// <param name="axisMask">配置当前需要运行的轴</param>
        /// <param name="position">一个存储各轴机器坐标的结构体</param>
        /// <returns></returns>
        public static int AsuMotion_SetMachineCoordinate(IntPtr handle, AsuMotionAxisMaskType axisMask, AsuMotionAxisData position)
        {
            AsuMotionError ret = AsuMotionSetMachineCoordinate(handle, axisMask, ref position);

            switch (ret)
            {
            case AsuMotionError.AsuMotion_True:
                LogHelper.WriteLog("配置机器坐标 当前运动卡处于 空闲 状态");
                return(3);

            default:
                LogHelper.WriteLog("配置机器坐标 当前运动卡处于 运动 状态");
                return(4);     // AsuMotion_False
            }
        }
Exemplo n.º 2
0
        /// <summary>
        /// 停止由运动控制卡规划的某个轴的运动
        /// 返回3 成功;
        /// 返回4 失败
        /// </summary>
        /// <param name="handle">设备句柄</param>
        /// <param name="axis">配置当前需要运行的轴</param>
        /// <returns></returns>
        public static int AsuMotion_CardPlanStop(IntPtr handle, AsuMotionAxisMaskType axis)
        {
            AsuMotionError ret = AsuMotionCardPlanStop(handle, axis);

            switch (ret)
            {
            case AsuMotionError.AsuMotion_True:
                LogHelper.WriteLog("停止由运动控制卡规划的特定轴的运动 成功");
                return(3);

            default:
                LogHelper.WriteLog("停止由运动控制卡规划的特定轴的运动 失败" + "---" + AsuMotion_GetErrorMessage(4));
                return(4);     // AsuMotion_False
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 绝对位置移动
        /// 返回0 成功;
        /// 返回2 失败;
        /// 返回1 设备句柄为空指针,一般因为没有打开设备导致;
        /// 返回8 当前状态下不能进行运动控制卡的规划,因为前面提交的其他操作还未完成
        /// </summary>
        /// <param name="handle">设备句柄</param>
        /// <param name="axisMask">配置当前需要运行的轴</param>
        /// <param name="positionGiven">给定一个点动运行时,机器的目标位置</param>
        /// <returns></returns>
        public static int AsuMotion_MoveAbsolute(IntPtr handle, AsuMotionAxisMaskType axisMask, ref AsuMotionAxisData positionGiven)
        {
            AsuMotionError ret = AsuMotionMoveAbsolute(handle, axisMask, ref positionGiven);

            switch (ret)
            {
            case AsuMotionError.AsuMotion_Error_Ok:
                LogHelper.WriteLog("绝对位置移动 成功");
                return(0);

            case AsuMotionError.AsuMotion_Device_Is_Null:
                LogHelper.WriteLog("绝对位置移动 失败,设备句柄为空指针,一般因为没有打开设备导致" + "---" + AsuMotion_GetErrorMessage(1));
                return(1);

            case AsuMotionError.AsuMotion_Error:
                LogHelper.WriteLog("绝对位置移动 失败" + "---" + AsuMotion_GetErrorMessage(2));
                return(2);

            default:
                LogHelper.WriteLog("绝对位置移动 失败,当前状态下不能进行运动控制卡的规划,因为前面提交的其他操作还未完成" + "---" + AsuMotion_GetErrorMessage(8));
                return(8);     // AsuMotion_CurrentState_Isnot_CardPlan
            }
        }
Exemplo n.º 4
0
        /// <summary>
        /// 请求一次回原点
        /// 返回0 成功;
        /// 返回1 设备句柄为空指针,一般因为没有打开设备导致;
        /// 返回7 当前状态下不能进行回原点,因为前面提交的其他操作还未完成
        /// </summary>
        /// <param name="handle">设备句柄</param>
        /// <param name="type">设置回原点的方式,目前支持三种方式</param>
        /// <param name="axisMask">配置当前需要运行的轴</param>
        /// <param name="count">设置回原点采用多次回原点时,回原点的次数</param>
        /// <param name="acceleration">一个存储各轴加速度的结构体</param>
        /// <param name="maxSpeed">一个存储各轴速度的结构体</param>
        /// <returns></returns>
        public static int AsuMotion_GoHome(IntPtr handle,
                                           AsuMotionHomingType type,
                                           AsuMotionAxisMaskType axisMask,
                                           ushort count,
                                           ref AsuMotionAxisData acceleration,
                                           ref AsuMotionAxisData maxSpeed)
        {
            AsuMotionError ret = AsuMotionGoHome(handle, type, axisMask, count, ref acceleration, ref maxSpeed);

            switch (ret)
            {
            case AsuMotionError.AsuMotion_Error_Ok:
                LogHelper.WriteLog("请求一次回原点 成功");
                return(0);

            case AsuMotionError.AsuMotion_Device_Is_Null:
                LogHelper.WriteLog("请求一次回原点 失败,设备句柄为空指针,一般因为没有打开设备导致" + "---" + AsuMotion_GetErrorMessage(1));
                return(1);

            default:
                LogHelper.WriteLog("请求一次回原点 失败,当前状态下不能进行回原点,因为前面提交的其他操作还未完成" + "---" + AsuMotion_GetErrorMessage(7));
                return(7);     // AsuMotion_CurrentState_Isnot_Idle
            }
        }
Exemplo n.º 5
0
 public static extern AsuMotionError AsuMotionGoHome(IntPtr AsuMotion,
                                                     AsuMotionHomingType Type,
                                                     AsuMotionAxisMaskType AxisMask,
                                                     ushort Count,
                                                     ref AsuMotionAxisData Acceleration,
                                                     ref AsuMotionAxisData MaxSpeed);
Exemplo n.º 6
0
 public static extern AsuMotionError AsuMotionSetMachineCoordinate(IntPtr AsuMotion, AsuMotionAxisMaskType AxisMask, ref AsuMotionAxisData Position);
Exemplo n.º 7
0
 public static extern AsuMotionError AsuMotionCardPlanStop(IntPtr AsuMotion, AsuMotionAxisMaskType Axis);
Exemplo n.º 8
0
 public static extern AsuMotionError AsuMotionMoveAbsolute(IntPtr AsuMotion, AsuMotionAxisMaskType AxisMask, ref AsuMotionAxisData PositionGiven);
Exemplo n.º 9
0
 public static extern AsuMotionError AsuMotionMoveAtConstSpeed(IntPtr AsuMotion, AsuMotionAxisMaskType AxisMask);