Ejemplo n.º 1
0
        /// <summary>
        /// 홈센서 기준 절대 위치로 이동.
        /// </summary>
        /// <param name="_dPos">이동할 위치 펄스단위</param>
        /// <param name="_dVel">이동할 속도 펄스단위</param>
        /// <param name="_dAcc">이동할 가속 펄스단위</param>
        /// <param name="_dDec">이동할 감속 펄스단위</param>
        /// <returns>성공여부</returns>
        public void GoAbs(double _dPos, double _dVel, double _dAcc, double _dDec)
        {
            int iRet = 0;

            //EMCL.ERAETech_EMCL_Sync_SetMaxAcceleration(m_iPortID, (byte)Para.iPhysicalNo, (int)_dAcc, ref iRet);

            EMCL.ERAETech_EMCL_Sync_SendCommand(m_iPortID, (byte)Para.iPhysicalNo, 5, 0, 0, (int)_dAcc, ref iRet);  //3번째 인자가 가감속 설정하는 부분 가속 = 5, 감속 = 17
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
            }
            EMCL.ERAETech_EMCL_Sync_SendCommand(m_iPortID, (byte)Para.iPhysicalNo, 17, 0, 0, (int)_dDec, ref iRet);  //3번째 인자가 가감속 설정하는 부분 가속 = 5, 감속 = 17
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
            }

            EMCL.ERAETech_EMCL_Sync_SetMaxPositionSpeed(m_iPortID, (byte)Para.iPhysicalNo, (int)_dVel, ref iRet);
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
            }

            EMCL.ERAETech_EMCL_Sync_MoveToPosition(m_iPortID, (byte)Para.iPhysicalNo, 0, (int)_dPos, ref iRet);
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
            }
        }