public int AxtReadMaxMotor() { #if PROGRAM_RUNNING int IAxisCount = 0; if (CAXM.AxmInfoGetAxisCount(ref IAxisCount) == (uint)AXT_FUNC_RESULT.AXT_RT_SUCCESS)// 모터가 몇개 연결되어 있는지 읽어 온다. { m_stDeviceInfo.nAxisCount = IAxisCount; } else { m_stDeviceInfo.nAxisCount = 0; } return(m_stDeviceInfo.nAxisCount); #else return(0); #endif }
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제어판에서 확인하십시요!"); } }
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(); } } }
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); }
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; } }