Exemplo n.º 1
0
        /// <summary>
        /// 홈을 수행한다.
        /// </summary>
        /// <returns>수행 성공여부.</returns>
        public bool GoHome(double _dHomeVelFirst, double _dHomeVelLast, double _dHomeAccFirst)
        {
            SetServo(true);

            int iRet = 0;

            //홈찾는 방법
            EMCL.ERAETech_EMCL_Sync_SetSearchMode(m_iPortID, (byte)Para.iPhysicalNo, (int)Para.eHomeMode, ref iRet);
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
                return(false);
            }

            //가감속
            EMCL.ERAETech_EMCL_Sync_SetMaxAcceleration(m_iPortID, (byte)Para.iPhysicalNo, (int)_dHomeAccFirst, ref iRet);
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
                return(false);
            }



            //첫번째 속도.
            EMCL.ERAETech_EMCL_Sync_SetRefSearchSpeed(m_iPortID, (byte)Para.iPhysicalNo, (int)_dHomeVelFirst, ref iRet);
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
                return(false);
            }

            //마지막 속도.
            EMCL.ERAETech_EMCL_Sync_SetRefSwitchSpeed(m_iPortID, (byte)Para.iPhysicalNo, (int)_dHomeVelLast, ref iRet);
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
                return(false);
            }

            //요이 땅.
            EMCL.ERAETech_EMCL_Sync_StartRefSearch(m_iPortID, (byte)Para.iPhysicalNo, ref iRet);
            if (iRet != 0)
            {
                Log.ShowMessage("EMCL_" + Para.iPhysicalNo.ToString() + "Axis", GetErrMsg(iRet));
                return(false);
            }


            return(true);
        }