/// <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 } }
/// <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 } }
/// <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 } }
/// <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 } }
public static extern AsuMotionError AsuMotionGoHome(IntPtr AsuMotion, AsuMotionHomingType Type, AsuMotionAxisMaskType AxisMask, ushort Count, ref AsuMotionAxisData Acceleration, ref AsuMotionAxisData MaxSpeed);
public static extern AsuMotionError AsuMotionSetMachineCoordinate(IntPtr AsuMotion, AsuMotionAxisMaskType AxisMask, ref AsuMotionAxisData Position);
public static extern AsuMotionError AsuMotionCardPlanStop(IntPtr AsuMotion, AsuMotionAxisMaskType Axis);
public static extern AsuMotionError AsuMotionMoveAbsolute(IntPtr AsuMotion, AsuMotionAxisMaskType AxisMask, ref AsuMotionAxisData PositionGiven);
public static extern AsuMotionError AsuMotionMoveAtConstSpeed(IntPtr AsuMotion, AsuMotionAxisMaskType AxisMask);