/// <summary> /// 轴相对位置运动 /// </summary> /// <param name="nType">轴号</param> /// <param name="dVel">速度</param> /// <param name="dAcc">加速度</param> /// <param name="dDistance">距离</param> /// <param name="nCardNum">卡号</param> public void AxisRMove(ENUM_AXIS_TYPE nType, double dVel, double dAcc, double dDistance, short nCardNum = 0) { if (GetAxisMotionSts(nCardNum, ENUM_AXIS_TYPE.ALL_AXIS)) { MessageBox.Show(@"请先等待轴停止!"); return; } s_listMotionWork[nCardNum].RMove((short)nType, dVel, dAcc, dDistance); }
/// <summary> /// 点位运动 /// </summary> /// <param name="nCardNum"></param> /// <param name="nAxis">轴号</param> /// <param name="dPosition">位置</param> /// <param name="dVel">速度:默认10</param> /// <param name="dAcc">加速度:默认1</param> /// <returns></returns> public bool AxisAbsMotion(short nCardNum, ENUM_AXIS_TYPE nAxis, double dPosition, double dVel = 10, double dAcc = 1) { if (GetAxisMotionSts(0, nAxis)) { MessageBox.Show(@"请等待轴停止!"); return(false); } return(s_listMotionWork[nCardNum].AbsMove((short)nAxis, dPosition, dVel, dAcc)); }
/// <summary> /// 阻塞式等待轴结束运动 /// </summary> /// <param name="nCardNum"></param> /// <param name="nAxis">轴号</param> public void WaitAxisOverMotion(short nCardNum, ENUM_AXIS_TYPE nAxis) { var bAxisSts = GetAxisMotionSts(nCardNum, nAxis); //等待点位运动停止 while (bAxisSts) { bAxisSts = GetAxisMotionSts(nCardNum, nAxis); Thread.Sleep(1); } }
/// <summary> /// 单轴回原 /// </summary> /// <param name="nCardNum"></param> /// <param name="nAxis"></param> /// <param name="nType"></param> public short SingleAxisHome(short nCardNum, ENUM_AXIS_TYPE nAxis, ENUM_HOME_TYPE nType) { if (GetAxisMotionSts(nCardNum, ENUM_AXIS_TYPE.ALL_AXIS)) { MessageBox.Show(@"请先等待轴停止!"); return(-1); } var rtn = s_listMotionWork[nCardNum].StartSingleHome((short)nAxis, (short)nType, -1, 10, 1000000, 100); return(rtn); }
/// <summary> /// 得到轴运动状态 /// </summary> /// <param name="nCardNum"></param> /// <param name="nAxis">轴号</param> /// <returns>true:运动 false:静止</returns> public bool GetAxisMotionSts(short nCardNum, ENUM_AXIS_TYPE nAxis) { //如果选择ALL_AXIS,返回整个板卡的运动状态 if (nAxis == ENUM_AXIS_TYPE.ALL_AXIS) { var bAllAxisSts = false; for (short i = 1; i < s_listMotionWork[nCardNum].m_maxAxisNum; i++) { var bAxisSts = s_listMotionWork[nCardNum].IsMoving(i); bAllAxisSts = bAllAxisSts || bAxisSts; } return(bAllAxisSts); } return(s_listMotionWork[nCardNum].IsMoving((short)nAxis)); }
/// <summary> /// 得到轴报警状态 /// </summary> /// <param name="nCardNum"></param> /// <param name="nAxis"></param> /// <returns></returns> public bool GetAxisAlarmSts(short nCardNum, ENUM_AXIS_TYPE nAxis) { return(s_listMotionWork[nCardNum].GetAxisAlarm((short)nAxis)); }
/// <summary> /// 得到轴Home状态 /// </summary> /// <param name="nCardNum"></param> /// <param name="nAxis">轴号</param> /// <returns></returns> public bool GetAxisHomeLimitSts(short nCardNum, ENUM_AXIS_TYPE nAxis) { return(s_listMotionWork[nCardNum].GetAxisHomeStatus((short)nAxis)); }
/// <summary> /// 轴平滑停止 /// </summary> /// <param name="nAxis"></param> /// <param name="nCardNum"></param> public void SmoothStopAxis(ENUM_AXIS_TYPE nAxis, short nCardNum = 0) { s_listMotionWork[nCardNum].SetSStop((short)nAxis); }
/// <summary> /// 割一刀轴位置信息 /// </summary> /// <param name="nCardNum"></param> /// <param name="nAxis"></param> /// <returns></returns> public double GetAxisCurPos(short nCardNum, ENUM_AXIS_TYPE nAxis) { return(s_listMotionWork[nCardNum].GetAxisCurPos((short)nAxis)); }