/// <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); }
public void AxtClose() { #if PROGRAM_RUNNING CAXL.AxlClose(); #endif return; }
public void Close() { // Ajinextek 시스템 초기화 되었는가? if (CAXL.AxlIsOpened() != 0) { CAXL.AxlClose(); } }
//상속된것들. 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); }
private void CloseWindow() { if (EventThread != null) { bThread = false; SetEvent(hInterrupt); EventThread.Abort(); EventThread = null; } CAXL.AxlClose(); }
public void Initialize() { // Ajinextek 시스템 초기화 되었는가? if (CAXL.AxlIsOpened() != 0) { return; } // Ajinextek 시스템 초기화 Validate(CAXL.AxlOpen(0)); InitializeDIO(); InitializeAxes(); }
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"; } }
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; } } }
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); } }
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 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); }
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; } }
//상속된것들. 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); }
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; } }
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; } }
/// <summary> /// 종료 함수 /// </summary> /// <returns>종료 성공여부</returns> public bool Close() { int iRet = CAXL.AxlClose(); return(iRet != 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); }
public bool Close() { CAXL.AxlClose(); return(true); }
public void InitAjinModule() { CAXL.AxlOpen(); }