Skip to content

보드 및 모듈 정보

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);