コード例 #1
0
ファイル: CMotor.cs プロジェクト: zoro-008/Works
        /// <summary>
        /// 초기화 함수.
        /// </summary>
        /// <returns>초기화 성공여부</returns>
        public bool Init()
        {
            Para = new CParaMotorAxl();

            //통합 보드 초기화 부분.
            if (CAXL.AxlIsOpened() == 0)
            {                                    // 통합 라이브러리가 사용 가능하지 (초기화가 되었는지) 확인
                if (CAXL.AxlOpenNoReset(7) != 0) //초기화 사용 하지 않는 오픈.
                {                                // 통합 라이브러리 초기화
                    Log.ShowMessage("Motor", "AJIN AXL Lib Loading Error");
                    return(false);
                }
            }
            uint uStatus = 0;
            uint uRet    = CAXM.AxmInfoIsMotionModule(ref uStatus);

            if (uRet != 0)
            {
                Log.ShowMessage("Motor", "AJIN AXL Motion Module Loading Error");
                return(false);
            }

            //public static extern uint AxmInfoIsMotionModule(ref uint upStatus);



            return(true);
        }
コード例 #2
0
        public void initLibrary()
        {
            try
            {
                if ((CAXL.AxlIsOpened() == (int)AXT_FUNC_RESULT.AXT_RT_OPEN_ALREADY))
                {
                    return;
                }
                if (CAXL.AxlOpen(7) != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    msgBox.ShowMessage("아젠보드 오류", "아젠 보드 초기화 오류", "현재 아젠 보드가 시스템에 장착되어 있지 않거나 정상적으로 인스톨되어 있지 않습니다.\r\n\r\n제어판에서 확인하십시요!");//("Intialize Fail..!!");
                    return;
                }

                if (this.DigitalIO_Open() == false)
                {
                    msgBox.ShowMessage("AT 보드 오류", "AT 보드 DIO 오류",
                                       "현재 DIO 보드가 시스템에 장착되어 있지 않거나 정상적으로 인스톨되어 있지 않습니다.\r\n\r\n제어판에서 확인하십시요!");
                }

                int uAxisCount = 0;

                uint upStatus = 0;

                upStatus = CAXM.AxmInfoGetAxisCount(ref uAxisCount);

                if (CAXM.AxmInfoIsMotionModule(ref upStatus) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    if (upStatus != (uint)AXT_EXISTENCE.STATUS_EXIST)
                    {
                        msgBox.ShowMessage("모션 모듈", "모션 모듈 에러.", "현재 모션 모듈을 찾지 못했습니다. 시스템을 확인해 주십시요!");
                    }
                }
            }
            catch (System.Exception ex)
            {
                msgBox.ShowMessage("AT Main Control Board", "AT Main Control Board Initializing Error", "System에서 AT Main Control Board를 찾지 못했습니다. System의 내용을 \r\n\r\n제어판에서 확인하십시요!");
            }
        }
コード例 #3
0
        private void InitializeAxes()
        {
            UInt32 retValue = 0;

            // Motion axis 모듈 존재여부 확인
            Validate(CAXM.AxmInfoIsMotionModule(ref retValue));

            if (retValue == (UInt32)AXT_EXISTENCE.STATUS_EXIST)
            {
                int moduleCount = 0;

                Validate(CAXM.AxmInfoGetAxisCount(ref moduleCount));

                if (moduleCount > 0)
                {
                    for (int i = 0; i < moduleCount; i++)
                    {
                        Axis.AddModule(new AxtAxisModule(i, "", Axis));
                    }

                    Axis.Reset();
                }
            }
        }
コード例 #4
0
        public bool Init(double YOneCycleToPulse, double ZOneCycleToPulse, double XOneCycleToPulse, float YOneCycleToStroke, float ZOneCycleToStroke, float XOneCycleToStroke)
        {
#if PROGRAM_RUNNING
            //++
            // 라이브러리 초기화

            this.YOneCycleToPulse = YOneCycleToPulse;
            this.ZOneCycleToPulse = ZOneCycleToPulse;
            this.XOneCycleToPulse = XOneCycleToPulse;

            this.YOneCycleToStroke = YOneCycleToStroke;
            this.ZOneCycleToStroke = ZOneCycleToStroke;
            this.XOneCycleToStroke = XOneCycleToStroke;

            if (CAXL.AxlOpen(7) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)                                // 통합 라이브러리가 사용 가능하지 (초기화가 되었는지)를 확인한다
            {
                //if (CAXL.AxlOpenNoReset(7) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)		// 통합 라이브러리를 초기화 한다
                //{
                //    MessageBox.Show("라이브러리 초기화 실패 입니다. 프로그램을 다시 실행 시켜 주세요");

                //    return false;
                //}
                uint uStatus = 0;

                if (CAXM.AxmInfoIsMotionModule(ref uStatus) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)// 모션 모듈이 있는지 확인한다.
                {
                    if (uStatus != (uint)AXT_EXISTENCE.STATUS_EXIST)
                    {
                        MessageBox.Show("모션 모듈을 찾을수 없습니다.");
                        return(false);
                    }

                    if (CAXM.AxmInfoGetAxisCount(ref IAxisCount) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)// 모터가 몇개 연결되어 있는지 읽어 온다.
                    {
                        if (IAxisCount == 0)
                        {
                            MessageBox.Show("연결되어 있는 서보 모터를 찾을 수 없습니다.");
                            return(false);
                        }
                    }
                    else
                    {
                        MessageBox.Show("연결되어 있는 서보모터 정보를 읽어 오는 동안 오류가 발생 하였습니다.");
                        return(false);
                    }
                }
                else
                {
                    MessageBox.Show("모션 모듈 정보를 읽어 오는 동안 오류가 발생하였습니다.");
                    return(false);
                }
            }
            else
            {
                MessageBox.Show("라이브러리 초기화 실패 입니다. 프로그램을 다시 실행 시켜 주세요");
                return(false);
            }


            // 사용하시는 베이스보드에 맞추어 Device를 Open하면 됩니다.
            // BUSTYPE_ISA					:	0
            // BUSTYPE_PCI					:	1
            // BUSTYPE_VME					:	2
            // BUSTYPE_CPCI(Compact PCI)	:	3



            //if (CAXL.AxlIsOpened() != 0)			// 지정한 버스(PCI)가 초기화 되었는지를 확인한다
            //{
            //    uint uStatus = 0;

            //    CAXM.AxmInfoIsMotionModule(ref uStatus);// 모션 모듈이 있는지 확인한다.
            //    if (uStatus != (uint)AXT_EXISTENCE.STATUS_EXIST)
            //    {
            //        MessageBox.Show("모션 모듀을 찾을수 없습니다.");

            //        return false;
            //    }
            //}
            //CAXM.AxmInfoGetAxisCount(ref IAxisCount);// 모터가 몇개 연결되어 있는지 읽어 온다.
            //if (0 < IAxisCount)
            //{
            //    if (CAxtCAMCFS20.InitializeCAMCFS20(1) == 0)		// 모듈을 초기화한다. 열려있는 모든베이스보드에서 모듈을 검색하여 초기화한다
            //    {
            //        MessageBox.Show("모듈 초기화 실패 입니다. 확인 후 다시 실행 시켜 주세요");
            //        return false;
            //    }
            //}
            //else
            //{
            //    MessageBox.Show("연결되어 있는 서보 모터를 찾을 수 없습니다.");
            //    return false;
            //}


            m_stDeviceInfo.nFirstAxisNo = 0;
            if (CAXM.AxmInfoGetAxis(
                    m_stDeviceInfo.nFirstAxisNo,
                    ref m_stDeviceInfo.nAxtBoardNo,
                    ref m_stDeviceInfo.nModulePos,
                    ref m_stDeviceInfo.uModuleID) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
            {
                if (CAXM.AxmInfoGetBoardFirstAxisNo(m_stDeviceInfo.nAxtBoardNo, m_stDeviceInfo.nModulePos, ref m_stDeviceInfo.nAxisPos) != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    MessageBox.Show("모션 보드 사용준비중 에러가 발생하였습니다.");
                    return(false);
                }
            }
#endif
            return(true);
        }