보드 및 모듈 정보
Function | Description |
---|---|
AxcInfoIsCNTModule | CNT 모듈이 시스템에 장착되어 있는지 확인한다. |
AxcInfoGetModuleNo | CNT 모듈의 번호를 확인한다. |
AxcInfoGetModuleCount | CNT 모듈 개수를 확인한다. |
AxcInfoGetChannelCount | 지정 CNT 모듈을 구성하는 카운터 채널 개수를 확인한다. |
AxcInfoGetTotalChannelCount | 전체 CNT 모듈로 구성되는 카운터 채널 개수를 확인한다. |
AxcInfoGetModule | 지정한 CNT 모듈의 정보를 확인한다. |
AxcInfoGetModuleEx | 지정한 CNT 모듈의 Sub ID, 모듈의 모델명, 모듈에 대한 설명을 확인한다. |
AxnfoGetModuleStatus | 지정한 CNT 모듈의 사용 가능 여부를 확인한다. |
AxcInfoGetFirstChannelNoOfModuleNo | 지정한 CNT 모듈의 첫 번째 채널 번호를 확인한다. |
AxcInfoGetModuleNoOfChannelNo | 채널 번호로 모듈 번호를 확인한다. |
AxcInfoIsCNTModule
Purpose
CNT 모듈이 시스템에 장착되어 있는지 확인한다.
Format
C++
DWORD AxcInfoIsCNTModule(DWORD *upStatus);
C#
uint AxcInfoIsCNTModule(ref uint upStatus);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[out]upStatus | CNT모듈의 존재여부: AXT_EXISTENCE - [00h] CNT모듈이 없음 - [01h] CNT모듈이 존재함 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
Description
PC 시스템에 CNT 모듈이 장착되어 있는지를 확인한다.
예제 코드
#include “Axl.h” // 라이브러리 추가
#include “Axc.h” // 라이브러리 추가
#include “Axhs.h” // 라이브러리 추가
DWORD uStatus;
// CNT 모듈이 있는지 확인한다.
AxcInfoIsCNTModule(&uStatus);
if(uStatus == STATUS_EXIST)
AfxMessageBox("CNT 모듈들이 존재합니다.");
else
AfxMessageBox("CNT 모듈들이 존재하지 않습니다.");
AxcInfoGetModuleNo
Purpose
CNT 모듈의 번호를 확인한다.
Format
C++
DWORD AxcInfoGetModuleNo(long lBoardNo, long lModulePos, long *lpModuleNo);
C#
uint AxcInfoGetModuleNo(int lBoardNo, int lModulePos, ref int lpModuleNo);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lBoardNo | 보드 번호 |
[in]lModulePos | 모듈 위치 |
[out]lpModuleNo | CNT 모듈 번호 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공
[1101] AXT_RT_INVALID_BOARD_NO : 라이브러리 초기화 실패
[1102] AXT_RT_INVALID_MODULE_POS : 유효하지 않는 모듈 번호
Description
보드 번호와 모듈의 위치 정보를 사용하여 시스템에 장착된 전체 CNT 모듈에 0 부터 오름차순으로 할당된 모듈 번호를 확인한다.
예제 코드
// CNT 모듈 번호를 확인한다.
Long lpModuleNo;
CString strData;
AxcInfoGetModuleNo (0, 0, &lpModuleNo);
strData.Format(“0번 보드의 0번 위치에 있는 CNT 모듈 번호는 %d 입니다.”, lpModuleNo);
AfxMessageBox(strData);
AxcInfoGetModuleCount
Purpose
CNT 모듈 개수를 확인한다.
Format
C++
DWORD AxcInfoGetModuleCount(long *lpModuleCount);
C#
uint AxcInfoGetModuleCount(ref int lpModuleCount);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[out]lpModuleCount | CNT 모듈 개수 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
시스템에 장착된 CNT 모듈의 개수를 확인한다.
예제 코드
// CNT 모듈의 개수를 확인한다.
long lCount;
CString strData;
AxcInfoGetModuleCount(&lCount);
strData.Format(“CNT 모듈의 개수는 %d개 입니다.”, lCount);
AfxMessageBox(strData);
AxcInfoGetChannelCount
Purpose
지정 CNT 모듈을 구성하는 카운터 채널 개수를 확인한다.
Format
C++
DWORD AxcInfoGetChannelCount(long lModuleNo, long *lpCount);
C#
uint AxcInfoGetChannelCount(int lModuleNo, ref int lpCount);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1) |
[out]lpCount | CNT 채널 개수 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3301] AXT_RT_CNT_INVALID_MODULE_NO : 유효하지 않은 CNT 모듈 번호
Description
지정 CNT 모듈을 구성하는 카운터 채널 개수를 확인한다.
SIO-CN2CH 는 2 채널, SIO-HPC4 는 4 채널로 구성된다.
예제 코드
// 0번째 모듈의 채널 개수를 확인한다.
long lCount;
CString strData;
AxcInfoGetInputCount(0, &lCount);
strData.Format(“0번 모듈의 입력 채널 개수는 %d개 입니다.”, lCount);
AfxMessageBox(strData);
AxcInfoGetTotalChannelCount
Purpose
전체 CNT 모듈로 구성되는 카운터 채널 개수를 확인한다.
Format
C++
DWORD AxcInfoGetTotalChannelCount(long *lpChannelCount);
C#
uint AxcInfoGetTotalChannelCount(ref int lpChannelCount);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[out]lpChannelCount | 전체 CNT 채널 개수 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
Description
전체 CNT 모듈로 구성되는 카운터 채널 개수를 확인한다.
예제 코드
// 전체 CNT 채널 개수를 확인한다.
long lChCount;
CString strData;
AxcInfoGetTotalChannelCount(&lChCount);
strData.Format(“전체 CNT 채널 개수는 %d개 입니다.”, lChCount);
AfxMessageBox(strData);
AxcInfoGetModule
Purpose
지정한 CNT 모듈의 정보를 확인한다.
Format
C++
DWORD AxcInfoGetModule(long lModuleNo, long *lpBoardNo, long *lpModulePos, DWORD *upModuleID);
C#
uint AxcInfoGetModule(int lModuleNo, ref int lpBoardNo, ref int lpModulePos, ref uint upModuleID);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[out]lpBoardNo | 베이스 보드 번호 (0 ~ N-1), N : 전체 Board 개수 |
[out]lpModulePos | 모듈 위치 (0 ~ M-1), M : Local 방식 bus 방식(4), Networ 방식(~64) |
[out]upModuleID | 모듈 ID, 제품 구별 코드, AXHS.h에서 정의 됨. |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3301] AXT_RT_CNT_INVALID_MODULE_NO : 유효하지 않은 CNT 모듈 번호
Description
사용자가 지정한 모듈 번호로 베이스 보드 번호, 모듈 위치, 모듈 ID 를 확인한다.
CNT 관련 모듈 ID 는 다음과 같다.
모듈 ID | 값 | 모듈 |
---|---|---|
AXT_SIO_CN2CH | 0xB1 (177) | SIO-CN2CH 2ch, local bus type |
AXT_SIO_HPC4 | 0xDA (218) | SIO-HPC4 4ch, local bus type |
AXT_SIO_RCNT2SIIIH | 0x62 (98) | N3SIIIH-CNT2 2ch, network slave |
AXT_SIO_RCNT2SIIIH_R | 0x6A (106) | N3SIIIH-CNT2 2ch, network slave |
AXT_SIO_RCNT2MLII | 0xB0(176) | PL2900 2ch, network slave(3rd party) |
AXT_SIO_RCNT2RTEX | 0xB2(178) | N3RTEX-CNT2 2ch, network slave |
AXT_SIO_RCNT2MLIII | 0xB3(179) | N3MLIII-CNT2 2ch, network slave |
예제 코드
// 0번째 모듈의 베이스 보드 번호, 모듈 번호, 모듈 ID를 확인한다.
long lBoardNo;
long lModulePos;
DWORD uModuleID;
CString strData;
AxcInfoGetModule(0, &lBoardNo, &lModulePos, &uModuleID);
strData.Format(“BoardNo=%d, ModulePos=%d, uModuleID=%02Xh”, lBoardNo, lModulePos, uModuleID);
AfxMessageBox(strData);
AxcInfoGetModuleEx
Purpose
지정한 모듈 번호로 해당 모듈의 Sub ID, 모듈의 모델명, 모듈에 대한 설명을 확인한다.
PCIe-RxxIF-ECAT 전용 함수입니다.
Format
C++
DWORD AxcInfoGetModuleEx(long lModuleNo, DWORD *upModuleSubID, char *szModuleName, char *szModuleDescription);
C#
uint AxcInfoGetModuleEx(int lModuleNo, ref uint upModuleSubID, ref string szModuleName, ref string szModuleDescription);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1) |
[out]upModuleSubID | EtherCAT 모듈을 구분하기 위한 Sub ID |
[out]szModuleName | 모듈의 모델명(50 Bytes) |
[out]szModuleDescription | 모듈에 대한 설명(80 Bytes) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
Description
사용자가 지정한 모듈이 EtherCAT Network Type 의 모듈일 때, 해당 모듈의 Sub ID, 모듈의 모델명, 모듈에 대한 설명을 확인한다.
예제 코드
// 0번째 모듈 정보를 확인.
DWORD upModuleSubID;
char szModuleName[128], szModuleDescription[128];
AxcInfoGetModuleEx(0, &upModuleSubID, szModuleName, szModuleDescription);
AxcInfoGetModuleStatus
Purpose
지정한 CNT 모듈의 사용 가능 여부를 확인한다.
Format
C++
DWORD AxcInfoGetModuleStatus(long lModuleNo);
C#
uint AxcInfoGetModuleStatus(int lModuleNo);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3301] AXT_RT_CNT_INVALID_MODULE_NO : 유효하지 않은 CNT 모듈 번호
[1152] AXT_RT_NETWORK_ERROR : network slave 타입 CNT 모듈 연결 상태 문제 발생
Description
지정한 CNT 모듈의 사용 가능 여부를 확인한다. 특히 Network slave type 의 CNT 모듈의 연결 상태를 알 수 있다.
예제 코드
// 0번째 모듈의 채널 개수를 확인한다.
DWROD uReturn = AXT_RT_SUCCESS;
CString strData;
uReturn = AxcInfoGetModuleStatus(0);
if(uReturn)
strData.Format(“0번 모듈 사용 불가 상태 입니다. 원인 코드[%04d]”, uReturn);
else
strData.Format(“0번 모듈 사용 가능합니다.”);
AfxMessageBox(strData);
AxcInfoGetFirstChannelNoOfModuleNo
Purpose
지정한 CNT 모듈의 첫번째 채널 번호를 확인한다.
Format
C++
DWORD AxcInfoGetFirstChannelNoOfModuleNo(long lModuleNo, long *lpChannelNo);
C#
uint AxcInfoGetFirstChannelNoOfModuleNo(int lModuleNo, ref int lpChannelNo);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[out]lpChannelNo | 트리거 채널 번호 (0 ~ M-1), M : 전체 CNT 채널 개수 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3301] AXT_RT_CNT_INVALID_MODULE_NO : 유효하지 않은 CNT 모듈 번호
Description
지정한 CNT 모듈에 할당된 첫번째 CNT 채널의 번호를 확인한다. 특정 CNT 모듈의 첫번째 CNT 채널에서만 사용 가능한 기능을 설정하기 위해 해당 CNT 채널 번호를 확인하는 용도 등으로 사용된다.
예제 코드
// 0번째 모듈의 첫 번째 CNT 채널 번호를 확인한다.
long lCntChannelNo = 0;
CString strData;
AxcInfoGetFirstChannelNoOfModuleNo (0, &lCntChannelNo);
strData.Format(“ModuleNo=0, FirstCntChannelNo=%d”, lCntChannelNo);
AfxMessageBox(strData);
AxcInfoGetModuleNoOfChannelNo
Purpose
지정한 CNT 모듈의 첫번째 채널 번호를 확인한다.
Format
C++
DWORD AxcInfoGetModuleNoOfChannelNo(long lChannelNo, long *lpModuleNo);
C#
uint AxcInfoGetModuleNoOfChannelNo(int lChannelNo, ref int lpModuleNo);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lChannelNo | 채널 번호 |
[out]lpModuleNo | 검색된 모듈 번호 반환 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3301] AXT_RT_CNT_INVALID_MODULE_NO : 유효하지 않은 CNT 모듈 번호
Description
지정한 CNT 모듈의 첫번째 채널 번호를 확인한다.
예제 코드
// 0번 채널의 모듈 번호를 확인한다.
long lModuleNo = 0;
AxcInfoGetModuleNoOfChannelNo(0, &lModuleNo);