Beispiel #1
0
        /// <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);
        }
Beispiel #2
0
        /// <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));
        }
Beispiel #3
0
        /// <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);
            }
        }
Beispiel #4
0
        /// <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);
        }
Beispiel #5
0
        /// <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));
        }
Beispiel #6
0
 /// <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));
 }
Beispiel #7
0
 /// <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));
 }
Beispiel #8
0
 /// <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);
 }
Beispiel #9
0
 /// <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));
 }