/// <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);