Ejemplo n.º 1
0
        /// <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);
        }
Ejemplo n.º 2
0
        public void AxtClose()
        {
#if PROGRAM_RUNNING
            CAXL.AxlClose();
#endif
            return;
        }
Ejemplo n.º 3
0
 public void Close()
 {
     // Ajinextek 시스템 초기화 되었는가?
     if (CAXL.AxlIsOpened() != 0)
     {
         CAXL.AxlClose();
     }
 }
Ejemplo n.º 4
0
        //상속된것들.
        public bool Init()
        {
            //통합 보드 초기화 부분.
            if (CAXL.AxlIsOpened() == 0)
            {                           // 통합 라이브러리가 사용 가능하지 (초기화가 되었는지) 확인
                if (CAXL.AxlOpenNoReset(7) != 0)
                {                       // 통합 라이브러리 초기화
                    Log.ShowMessage("Dio", "AJIN AXL Lib Loading Error");
                    return(false);
                }
            }

            uint uiStatus = 0;
            uint uiRet    = CAXD.AxdInfoIsDIOModule(ref uiStatus);

            if (uiRet != 0)
            {
                if (uiStatus == 0)
                {
                    Log.ShowMessage("Dio", "AJIN AXL No Exist IO Module");
                }
                else
                {
                    Log.ShowMessage("Dio", "AJIN AXL Init Failed");
                }

                return(false);
            }



            //모듈 정보 확인 부분.
            //InPut OutPut Count Set
            CAXD.AxdInfoGetModuleCount(ref m_iModuleCnt);


            //Get Max I Module , O Module Count.
            int iInputCnt = 0, iOutputCnt = 0;


            m_aModuleInfo = new TModuleInfo[m_iModuleCnt];
            for (int i = 0; i < m_iModuleCnt; i++)
            {
                CAXD.AxdInfoGetInputCount(i, ref iInputCnt);
                CAXD.AxdInfoGetOutputCount(i, ref iOutputCnt);

                m_iMaxIn  += iInputCnt;
                m_iMaxOut += iOutputCnt;

                m_aModuleInfo[i].iCntIn  = iInputCnt;
                m_aModuleInfo[i].iCntOut = iOutputCnt;
                //m_aModuleInfo[i].uData   = 0         ;
            }

            return(true);
        }
Ejemplo n.º 5
0
        private void CloseWindow()
        {
            if (EventThread != null)
            {
                bThread = false;
                SetEvent(hInterrupt);
                EventThread.Abort();
                EventThread = null;
            }

            CAXL.AxlClose();
        }
Ejemplo n.º 6
0
        public void Initialize()
        {
            // Ajinextek 시스템 초기화 되었는가?
            if (CAXL.AxlIsOpened() != 0)
            {
                return;
            }

            // Ajinextek 시스템 초기화
            Validate(CAXL.AxlOpen(0));

            InitializeDIO();
            InitializeAxes();
        }
Ejemplo n.º 7
0
 public void deactivate(out bool b, out string s)
 {
     try
     {
         if (dev.NotExistHW.AXT)
         {
             b = true; s = ""; return;
         }
         CAXL.AxlClose();
         b          = true; s = "";
         isActivate = false;
     }
     catch
     {
         b = false; s = "Exception Error";
     }
 }
Ejemplo n.º 8
0
        private void checkInterrupt_CheckedChanged(object sender, System.EventArgs e)
        {
            int nModuleCount = 0;

            CAXD.AxdInfoGetModuleCount(ref nModuleCount);

            if (nModuleCount > 0)
            {
                int  nBoardNo   = 0;
                int  nModulePos = 0;
                uint uModuleID  = 0;

                CAXD.AxdInfoGetModule(comboModule.SelectedIndex, ref nBoardNo, ref nModulePos, ref uModuleID);

                switch ((AXT_MODULE)uModuleID)
                {
                case AXT_MODULE.AXT_SIO_DI32:
                case AXT_MODULE.AXT_SIO_DB32P:
                case AXT_MODULE.AXT_SIO_DB32T:
                    if (checkInterrupt.Checked)
                    {
                        CAXL.AxlInterruptEnable();
                        CAXD.AxdiInterruptSetModuleEnable(comboModule.SelectedIndex, (uint)AXT_USE.ENABLE);
                    }
                    else
                    {
                        IntPtr pEvent = (IntPtr)0;


                        CAXD.AxdiInterruptSetModuleEnable(comboModule.SelectedIndex, (uint)AXT_USE.DISABLE);
                        CAXL.AxlInterruptDisable();
                    }
                    break;

                case AXT_MODULE.AXT_SIO_DO32P:
                case AXT_MODULE.AXT_SIO_DO32T:
                case AXT_MODULE.AXT_SIO_RDB128MLII:

                    checkInterrupt.Checked = false;
                    break;
                }
            }
        }
Ejemplo n.º 9
0
 public bool IsEmergency()
 {
     if (CAXL.AxlIsOpened() == 1)
     {
         uint value = 0;
         CAXD.AxdiReadInportBit(0, 0, ref value);
         if (value == 1)
         {
             return(false);
         }
         else
         {
             return(true);
         }
     }
     else
     {
         return(false);
     }
 }
Ejemplo n.º 10
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제어판에서 확인하십시요!");
            }
        }
Ejemplo n.º 11
0
        private bool OpenDevice()
        {
            //++
            // Initialize library
            if (CAXL.AxlOpen(7) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
            {
                uint uStatus = 0;

                if (CAXD.AxdInfoIsDIOModule(ref uStatus) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    if ((AXT_EXISTENCE)uStatus == AXT_EXISTENCE.STATUS_EXIST)
                    {
                        int nModuleCount = 0;

                        if (CAXD.AxdInfoGetModuleCount(ref nModuleCount) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                        {
                            short  i          = 0;
                            int    nBoardNo   = 0;
                            int    nModulePos = 0;
                            uint   uModuleID  = 0;
                            string strData    = "";

                            for (i = 0; i < nModuleCount; i++)
                            {
                                if (CAXD.AxdInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                                {
                                    switch ((AXT_MODULE)uModuleID)
                                    {
                                    case AXT_MODULE.AXT_SIO_DI32:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DO32P:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32P", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DB32P:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32P", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DO32T:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_DB32T:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32T", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_RDI32:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO_RDI32", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_RDO32:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i);
                                        break;

                                    case AXT_MODULE.AXT_SIO_RDB128MLII:
                                        strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i);
                                        break;
                                    }

                                    //comboModule.Items.Add(strData);
                                }
                            }

                            //comboModule.SelectedIndex = 0;
                        }
                    }
                    else
                    {
                        MessageBox.Show("Module not exist.");

                        return(false);
                    }
                }
            }
            else
            {
                MessageBox.Show("Open Error!");
            }

            return(true);
        }
Ejemplo n.º 12
0
        public void InitDIO()
        {
            try
            {
                // Initialize library
                uint result = CAXL.AxlOpen(7);
                if (result == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS || result == (uint)AXT_FUNC_RESULT.AXT_RT_OPEN_ALREADY)
                {
                    uint uStatus = 0;

                    if (CAXD.AxdInfoIsDIOModule(ref uStatus) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                    {
                        if ((AXT_EXISTENCE)uStatus == AXT_EXISTENCE.STATUS_EXIST)
                        {
                            int nModuleCount = 0;

                            if (CAXD.AxdInfoGetModuleCount(ref nModuleCount) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                            {
                                short  i          = 0;
                                int    nBoardNo   = 0;
                                int    nModulePos = 0;
                                uint   uModuleID  = 0;
                                string strData    = "";

                                for (i = 0; i < nModuleCount; i++)
                                {
                                    if (CAXD.AxdInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                                    {
                                        switch ((AXT_MODULE)uModuleID)
                                        {
                                        case AXT_MODULE.AXT_SIO_RDI32MLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32MSMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32PMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32RTEX: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DI32_P: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDI32: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DI32: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32MLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB128MLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32AMSMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RSIMPLEIOMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32PMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO16AMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO16AMLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO16BMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO16BMLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB96MLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32RTEX: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO32RTEX", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DO32T_P: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDI32RTEX", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDO32: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB32RTEX", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DO32P: strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32_P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DO32T: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T_P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32MLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32PMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB128MLIIIAI: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB96MLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32P", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32RTEX: strData = String.Format("[{0:D2}:{1:D2}] SIO-DO32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB128MLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-DB32T", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DB32P: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDI32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RDB32T: strData = String.Format("[{0:D2}:{1:D2}] SIO_RDO32", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_DB32T: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDB128MLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_UNDEFINEMLIII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RSIMPLEIOMLII", nBoardNo, i); break;

                                        case AXT_MODULE.AXT_SIO_RSIMPLEIOMLII: strData = String.Format("[{0:D2}:{1:D2}] SIO-RDO16AMLII", nBoardNo, i); break;
                                        }

                                        int inpCnt = 0, outCnt = 0;
                                        CAXD.AxdInfoGetInputCount(i, ref inpCnt);
                                        CAXD.AxdInfoGetOutputCount(i, ref outCnt);

                                        int inStartIndex  = m_nInputCount;
                                        int outStartIndex = m_nOutputCount;

                                        m_nInputCount  += inpCnt;
                                        m_nOutputCount += outCnt;

                                        int inEndIndex  = m_nInputCount - 1;
                                        int outEndIndex = m_nOutputCount - 1;

                                        switch ((AXT_MODULE)uModuleID)
                                        {
                                        case AXT_MODULE.AXT_SIO_DB32P:
                                        case AXT_MODULE.AXT_SIO_RDB32T:
                                        case AXT_MODULE.AXT_SIO_DB32T:
                                        case AXT_MODULE.AXT_SIO_UNDEFINEMLIII:
                                        {
                                            outStartIndex += 16;
                                            outEndIndex   += 16;
                                        }
                                        break;
                                        }

                                        ModuleInfo modInfo = new ModuleInfo(i, strData, inpCnt, outCnt, uModuleID, "none", inStartIndex, inEndIndex, outStartIndex, outEndIndex);
                                        m_listModules.Add(modInfo);
                                    }
                                }
                                m_nModuleCount = nModuleCount;
                            }
                        }
                    }
                }

                m_listInNames = new List <string>(m_nInputCount);
                for (int i = 0; i < m_nInputCount; i++)
                {
                    m_listInNames.Add("");
                }

                m_listOutNames = new List <string>(m_nOutputCount);
                for (int i = 0; i < m_nOutputCount; i++)
                {
                    m_listOutNames.Add("");
                }
            }
            catch (Exception E)
            {
                throw E;
            }
        }
Ejemplo n.º 13
0
        //상속된것들.
        public bool Init()
        {
            //통합 보드 초기화 부분.
            if (CAXL.AxlIsOpened() == 0)
            {                           // 통합 라이브러리가 사용 가능하지 (초기화가 되었는지) 확인
                if (CAXL.AxlOpenNoReset(7) != 0)
                {                       // 통합 라이브러리 초기화
                    Log.ShowMessage("Aio", "AJIN AXL Lib Loading Error");
                    return(false);
                }
            }

            uint uiStatus = 0;
            uint uiRet    = CAXA.AxaInfoIsAIOModule(ref uiStatus);

            if (uiRet != 0)
            {
                if (uiStatus == 0)
                {
                    Log.ShowMessage("Dio", "AJIN AXL No Exist IO Module");
                }
                else
                {
                    Log.ShowMessage("Dio", "AJIN AXL Init Failed");
                }

                return(false);
            }



            //모듈 정보 확인 부분.
            //InPut OutPut Count Set
            CAXA.AxaInfoGetModuleCount(ref m_iModuleCnt);


            //Get Max I Module , O Module Count.
            int iInputCnt = 0, iOutputCnt = 0;


            m_aModuleInfo = new TModuleInfo[m_iModuleCnt];
            for (int i = 0; i < m_iModuleCnt; i++)
            {
                CAXA.AxaInfoGetInputCount(i, ref iInputCnt);
                CAXA.AxaInfoGetOutputCount(i, ref iOutputCnt);

                m_iMaxIn  += iInputCnt;
                m_iMaxOut += iOutputCnt;

                m_aModuleInfo[i].iCntIn  = iInputCnt;
                m_aModuleInfo[i].iCntOut = iOutputCnt;
            }

            //Range Setting
            if (dMin < -10 || dMin > 10)
            {
                dMin = 0;
            }
            if (dMax < -10 || dMax > 10)
            {
                dMax = 0;
            }
            for (int i = 0; i < m_iMaxIn; i++)
            {
                CAXA.AxaiSetRange(i, dMin, dMax);
                CAXA.AxaiSetTriggerMode(i, 1);        //1 - Normal Trigger , 2 - Timer Trigger , 3 - External Trigger
                //CAXA.AxaiHwSetBufferOverflowMode(i, 0);
                //CAXA.AxaiHwSetSamplePeriod(i, 100);
                //CAXA.AxaiHwSetSampleFreq(i, 10);
                //CAXA.AxaiHwGetSampleFreq(0, ref d1);
            }
            for (int i = 0; i < m_iMaxOut; i++)
            {
                CAXA.AxaoSetRange(i, dMin, dMax);
            }



            return(true);
        }
Ejemplo n.º 14
0
        public void InitMotion()
        {
            try
            {
                uint result = CAXL.AxlOpen(7);
                if (result != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS && result != (uint)AXT_FUNC_RESULT.AXT_RT_OPEN_ALREADY)
                {
                    return;
                }

                CAXM.AxmInfoGetAxisCount(ref m_nAxisCount);

                if (m_nAxisCount > 0)
                {
                    m_listAxis = new List <AxisAjin>(m_nAxisCount);

                    for (int i = 0; i < m_nAxisCount; i++)
                    {
                        AxisAjin axis = new AxisAjin();
                        m_listAxis.Add(axis);
                    }

                    for (int i = 0; i < m_nAxisCount; i++)
                    {
                        int  boardNum = 0, modulePos = 0;
                        uint moduleID = 0;
                        CAXM.AxmInfoGetAxis(i, ref boardNum, ref modulePos, ref moduleID);
                        m_listAxis[i].AxisNumber = i;
                        m_listAxis[i].SetBoardNum(boardNum);
                        m_listAxis[i].SetModuleId(moduleID);

                        switch (moduleID)
                        {
                        case (uint)AXT_MODULE.AXT_SMC_4V04: m_listAxis[i].DevName = String.Format("{0:00}-[PCIB-QI4A]", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_2V04: m_listAxis[i].DevName = String.Format("{0:00}-[PCIB-QI2A]", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_R1V04: m_listAxis[i].DevName = String.Format("{0:00}-(RTEX-PM)", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_R1V04A4: m_listAxis[i].DevName = String.Format("{0:00}-[RTEX-A4N]", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_R1V04A5: m_listAxis[i].DevName = String.Format("{0:00}-[RTEX-A5N]", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_R1V04MLIISV: m_listAxis[i].DevName = String.Format("{0:00}-[MLII-SGDV]", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_R1V04MLIIPM: m_listAxis[i].DevName = String.Format("{0:00}-(MLII-PM)", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_R1V04MLIICL: m_listAxis[i].DevName = String.Format("{0:00}-[MLII-CSDL]", i); break;

                        case (uint)AXT_MODULE.AXT_SMC_R1V04MLIICR: m_listAxis[i].DevName = String.Format("{0:00}-[MLII-CSDH]", i); break;

                        default: m_listAxis[i].SetModuleName(String.Format("{0:00}-[Unknown]", i)); break;
                        }
                    }

                    m_bIsInitMotion = true;
                }
            }
            catch (Exception E)
            {
                LogFile.LogExceptionErr(E.ToString());
                throw E;
            }
        }
Ejemplo n.º 15
0
        public void activate(AXT_MODULE sub1, AXT_MODULE sub2, AXT_MODULE sub3, AXT_MODULE sub4, out bool b, out string s)
        {
            try
            {
                if (dev.NotExistHW.AXT)
                {
                    b = true; s = "OK"; return;
                }
                isActivate = false;
                try
                {
                    CAXL.AxlClose();
                }
                catch
                {
                    b = false; s = "Cannot find AXL.DLL"; return;
                }

                int  lIrqNo     = 19;
                uint uStatus    = 0;
                int  nDIOModule = 0;
                int  nAIOModule = 0;

                DI_ModulCount  = 0;
                DO_ModulCount  = 0;
                AIO_ModulCount = 0;
                if (sub1 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub2 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub3 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub4 == AXT_MODULE.AXT_SIO_DI32)
                {
                    DI_ModulCount++;
                }
                if (sub1 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub2 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub3 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub4 == AXT_MODULE.AXT_SIO_DO32P)
                {
                    DO_ModulCount++;
                }
                if (sub1 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }
                if (sub2 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }
                if (sub3 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }
                if (sub4 == AXT_MODULE.AXT_SIO_AI8AO4HB)
                {
                    AIO_ModulCount++;
                }

                uint            uResult = CAXL.AxlOpen(lIrqNo);
                AXT_FUNC_RESULT enReult;

                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = String.Format("AxlOpen Fail : IRQ[{0}], Error Code[{1}] - {2}", lIrqNo, uResult, enReult); return;
                }
                #region DIO Modul Check
                uResult = CAXD.AxdInfoIsDIOModule(ref uStatus);
                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = String.Format("DIO Module Exist Check Fail : Error Code[{0}] - {1}", uResult, enReult); return;
                }
                if ((AXT_EXISTENCE)uStatus != AXT_EXISTENCE.STATUS_EXIST)
                {
                    if (DI_ModulCount + DO_ModulCount > 0)
                    {
                        b = false; s = "CANNOT Find DIO Module!"; return;
                    }
                }
                //uResult = CAXD.AxdInfoGetModuleCount(ref nDIOModule);
                //if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                //{
                //    enReult = (AXT_FUNC_RESULT)uResult;		// convert int to enum
                //    b = false; s = String.Format("DIO Module Count Check Fail : Error Code[{0}] - {1}", uResult, enReult); return;
                //}
                //if (DI_ModulCount + DO_ModulCount != nDIOModule)
                //{
                //    b = false; s = String.Format("DIO Module Count Mismatch : Find[{0}] Need[{1}]", nDIOModule, (DI_ModulCount + DO_ModulCount)); return;
                //}

                int  nBoardNo   = 0;
                int  nModulePos = 0;
                uint uModuleID  = 0;

                for (int i = 0; i < nDIOModule; i++)
                {
                    uResult = CAXD.AxdInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID);
                    if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                    {
                        enReult = (AXT_FUNC_RESULT)uResult;                                     // convert int to enum
                        b       = false; s = "DIO Module[" + i.ToString() + "] Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                    }
                    if (nBoardNo == 0)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub1 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub2 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[0] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }
                    else if (nBoardNo == 1)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub3 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub3 modul " + sub3.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub4 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub4 modul " + sub4.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[1] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }
                    //if (nBoardNo != 0) { b = false; s = "Fail : DIO nBoardNo " + nBoardNo.ToString(); return; }
                    //if (nModulePos == 0)
                    //{
                    //    if (sub1 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 1)
                    //{
                    //    if (sub2 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 2)
                    //{
                    //    if (sub3 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub3 modul " + sub3.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 3)
                    //{
                    //    if (sub4 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub4 modul " + sub4.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                }
                #endregion
                #region AIO Modul Check
                uResult = CAXA.AxaInfoIsAIOModule(ref uStatus);
                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = "DIO Module Exist Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                }
                if ((AXT_EXISTENCE)uStatus != AXT_EXISTENCE.STATUS_EXIST)
                {
                    if (AIO_ModulCount > 0)
                    {
                        b = false; s = "CANNOT Find AIO Module!"; return;
                    }
                }
                uResult = CAXA.AxaInfoGetModuleCount(ref nAIOModule);
                if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                {
                    enReult = (AXT_FUNC_RESULT)uResult;                                 // convert int to enum
                    b       = false; s = "AIO Module Count Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                }
                if (AIO_ModulCount != nAIOModule)
                {
                    b = false; s = "AIO Module Count Mismatch : Find[" + nAIOModule.ToString() + "] Need[" + (AIO_ModulCount).ToString() + "]"; return;
                }

                for (int i = 0; i < nAIOModule; i++)
                {
                    uResult = CAXA.AxaInfoGetModule(i, ref nBoardNo, ref nModulePos, ref uModuleID);
                    if (uResult != (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)
                    {
                        enReult = (AXT_FUNC_RESULT)uResult;                                     // convert int to enum
                        b       = false; s = "Analog Module[" + i.ToString() + "] Check Fail : Error Code[" + uResult.ToString() + "] - " + enReult.ToString(); return;
                    }

                    if (nBoardNo == 0)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub1 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub2 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[0] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }
                    else if (nBoardNo == 1)
                    {
                        if (nModulePos == 0)
                        {
                            if (sub3 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub3 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else if (nModulePos == 1)
                        {
                            if (sub4 != (AXT_MODULE)uModuleID)
                            {
                                b = false; s = "Fail : sub4 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return;
                            }
                        }
                        else
                        {
                            b = false; s = "nBoardNo[1] uModuleID : " + ((AXT_MODULE)uModuleID).ToString(); return;
                        }
                    }

                    //if (nBoardNo != 1) { b = false; s = "AIO nBoardNo " + nBoardNo.ToString() + " : Fail"; return; }
                    //if (nModulePos == 0)
                    //{
                    //    if (sub1 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub1 modul " + sub1.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 1)
                    //{
                    //    if (sub2 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub2 modul " + sub2.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 2)
                    //{
                    //    if (sub3 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub3 modul " + sub3.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                    //if (nModulePos == 3)
                    //{
                    //    if (sub4 != (AXT_MODULE)uModuleID) { b = false; s = "Fail : sub4 modul " + sub4.ToString() + " : " + ((AXT_MODULE)uModuleID).ToString(); return; }
                    //}
                }

                CAXA.AxaoInfoGetChannelCount(ref AO_ChannelCount);
                if (AO_ChannelCount != nAIOModule * 4)
                {
                    b = false; s = "Anlog Output Channel Count Check Fail : " + (nAIOModule * 4).ToString() + " : " + AO_ChannelCount.ToString(); return;
                }

                for (int i = 0; i < AO_ChannelCount; ++i)
                {
                    // 출력 Channel에 0V를 출력한다.
                    CAXA.AxaoWriteVoltage(i, 0);
                }

                CAXA.AxaiInfoGetChannelCount(ref AI_ChannelCount);
                if (AI_ChannelCount != nAIOModule * 8)
                {
                    b = false; s = "Analog Input Channel Count Check Fail : " + (nAIOModule * 8).ToString() + " : " + AI_ChannelCount.ToString(); return;
                }

                #endregion
                b          = true; s = "OK";
                isActivate = true;
            }
            catch
            {
                b          = false; s = "Exception Error";
                isActivate = false;
            }
        }
Ejemplo n.º 16
0
        /// <summary>
        /// 종료 함수
        /// </summary>
        /// <returns>종료 성공여부</returns>
        public bool Close()
        {
            int iRet = CAXL.AxlClose();

            return(iRet != 0);
        }
Ejemplo n.º 17
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);
        }
Ejemplo n.º 18
0
 public bool Close()
 {
     CAXL.AxlClose();
     return(true);
 }
Ejemplo n.º 19
0
 public void InitAjinModule()
 {
     CAXL.AxlOpen();
 }