Skip to content

보드 및 모듈 정보

Function Description
AxdInfoIsDIOModule DIO 모듈이 있는지 확인한다.
AxdInfoGetModuleNo DIO 모듈 Number를 확인한다.
AxdInfoGetModuleCount DIO 입출력 모듈의 개수를 확인한다.
AxdInfoGetInputCount 지정한 모듈의 입력 접점 개수를 확인한다.
AxdInfoGetOutputCount 지정한 모듈의 출력 접점 개수를 확인한다.
AxdInfoGetModule 지정한 모듈 번호로 베이스 보드 번호, 모듈 위치, 모듈 ID를 확인한다.
AxdInfoGetModuleEx 지정한 모듈 번호로 해당 모듈의 Sub ID, 모듈의 모델명, 모듈에 대한 설명을 확인한다.
AxdInfoGetModuleStatus 지정한 모듈이 제어가 가능한 상태인지 반환한다.

AxdInfoIsDIOModule

Purpose

DIO 모듈이 있는지 확인한다.

Format

C++
DWORD AxdInfoIsDIOModule(DWORD *upStatus);
C#
uint AxdInfoIsDIOModule(ref uint upStatus);

Parameters

[in/out] Name [Init Value] Explanation
[out]upStatus DIO 모듈의 존재 여부: AXT_EXISTENCE
- [00h] DIO모듈이 없음
- [01h] DIO모듈이 존재함

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패

Description

PC 에 장착되어 있는 모든 DIO 모듈들을 초기화한다.

예제 코드

#include “AXL.h” // 라이브러리 추가
#include “AXHS.h”
#include “AXD.h”
DWORD uStatus;

// DIO 모듈이 있는지 확인한다.
AxdInfoIsDIOModule(&uStatus);

if(uStatus == STATUS_EXIST)
    AfxMessageBox("SIO-Dx32 모듈들이 존재합니다.");
else
    AfxMessageBox("SIO-Dx32 모듈들이 존재하지 않습니다.");

AxdInfoGetModuleNo

Purpose

DIO 모듈 Number 를 확인한다.

Format

C++
DWORD AxdInfoGetModuleNo(long lBoardNo, long lModulePos, long *lpModuleNo);
C#
uint AxdInfoGetModuleNo(int lBoardNo, int lModulePos, ref int lpModuleNo);

Parameters

[in/out] Name [Init Value] Explanation
[in]lBoardNo 보드 번호
[in]lModulePos 모듈 위치
[out]lpModuleNo DIO 모듈 Number

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[1102] AXT_RT_INVALID_MODULE_POS : 유효하지 않은 모듈 번호

Description

초기화되어 있는 DIO 모듈 Number 를 확인한다.

예제 코드

// DIO 모듈 Number를 확인한다.
Long lpModuleNo;
CString strData;

AxdInfoGetModuleNo (0, 0, &lpModuleNo);
strData.Format(0 보드의 0 Pos에 있는 DIO 모듈 Number는 %d개 입니다., lpModuleNo);

AfxMessageBox(strData);

AxdInfoGetModuleCount

Purpose

DIO 모듈의 개수를 확인한다.

Format

C++
DWORD AxdInfoGetModuleCount(long *lpModuleCount);
C#
uint AxdInfoGetModuleCount(ref int lpModuleCount);

Parameters

[in/out] Name [Init Value] Explanation
[out]lpModuleCount DIO 모듈 개수

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음

Description

초기화되어있는 DIO 모듈의 개수를 확인한다.

예제 코드

// DIO 모듈의 개수를 확인한다.
long lCount;
CString strData;

AxdInfoGetModuleCount(&lCount);
strData.Format(DIO 모듈의 개수는 %d개 입니다., lCount);

AfxMessageBox(strData);

AxdInfoGetInputCount

Purpose

지정한 모듈의 입력 접점 개수를 확인한다.

Format

C++
DWORD AxdInfoGetInputCount(long lModuleNo, long *lpCount);
C#
uint AxdInfoGetModuleCount(int lModuleNo, ref int lpCount);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호 (0 ~ N-1)
[out]lpCount 입력 접점 개수

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호

Description

사용자가 지정한 모듈의 입력 접점 수를 확인한다.

DIO 모듈 입출력 접점 수

Module Input Output
SIO-DI32 32 0
SIO-DO32P 0 32
SIO-DB32P 16 16
SIO-DO32T 0 32
SIO-DB32T 16 16

예제 코드

// 0번째 모듈의 입력 접점 개수를 확인한다.
long lCount;
CString strData;

AxdInfoGetInputCount(0, &lCount);
strData.Format(0 모듈의 입력 접점 개수는 %d개 입니다., lCount);

AfxMessageBox(strData);

AxdInfoGetOutputCount

Purpose

지정한 모듈의 출력 접점 수를 확인한다.

Format

C++
DWORD AxdInfoGetOutputCount(long lModuleNo, long *lpCount);
C#
uint AxdInfoGetOutputCount(int lModuleNo, ref int lpCount);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호 (0 ~ N-1)
[out]lpCount 출력 접점 개수

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호

Description

사용자가 지정한 모듈의 출력 접점 개수를 확인한다.

DIO 모듈 입출력 접점 수

Module Input Output
SIO-DI32 32 0
SIO-DO32P 0 32
SIO-DB32P 16 16
SIO-DO32T 0 32
SIO-DB32T 16 16

예제 코드

// 0번째 모듈의 출력 접점 개수를 확인한다.
long lCount;
CString strData;

AxdInfoGetOutputCount(0, &lCount);
strData.Format(0 모듈의 출력 접점 개수는 %d개 입니다., lCount);

AfxMessageBox(strData);

AxdInfoGetModule

Purpose

지정한 모듈 번호로 베이스 보드 번호, 모듈 위치, 모듈 ID 를 확인한다.

Format

C++
DWORD AxdInfoGetModule(long lModuleNo, long *lpBoardNo, long *lpModulePos, DWORD *upModuleID);
C#
uint AxdInfoGetModule(int lModuleNo, ref int lpBoardNo, ref int lpModulePos, ref uint upModuleID);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호 (0 ~ N-1)
[out]lpBoardNo 베이스 보드 번호 (0 ~ N-1)
[out]lpModulePos 모듈 위치 (0 ~ 3)
[out]upModuleID 모듈 ID

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호

Description

사용자가 지정한 모듈 번호로 베이스 보드 번호, 모듈 위치, 모듈 ID 를 확인한다.
DIO 모듈의 ID 는 다음과 같다.

모듈 ID HEX 값(Decimal) 모듈
AXT_SIO_DI32 0x97 (151) Digital IN 32점
AXT_SIO_DO32P 0x98 (152) Digital OUT 32점
AXT_SIO_DB32P 0x99 (153) Digital IN 16점 / OUT 16점
AXT_SIO_DO32T 0x9E (158) Digital OUT 16점, Power TR 출력
AXT_SIO_DB32T 0x9F(159) Digital IN 16점 / OUT 16점, Power TR 출력
AXT_SIO_RDI32 0x95 Digital IN 32점
AXT_SIO_RDO32 0x96 Digital OUT 32점
AXT_SIO_RDB128MLII 0x94 Digital IN 64점 / OUT 64점

예제 코드

// 0번째 모듈의 베이스 보드 번호, 모듈 번호,모듈 ID를 확인한다.
long lBoardNo;
long lModulePos;
DWORD uModuleID;
CString strData;

AxdInfoGetModule(0, &lBoardNo, &lModulePos, &uModuleID);
strData.Format(BoardNo=%d, ModulePos=%d, uModuleID=%02Xh, lBoardNo, lModulePos, uModuleID);

AfxMessageBox(strData);

AxdInfoGetModuleEx

Purpose

지정한 모듈 번호로 해당 모듈의 Sub ID, 모듈의 모델명, 모듈에 대한 설명을 확인한다.

PCIe-RxxIF-ECAT 전용 함수입니다.

Format

C++
DWORD AxdInfoGetModuleEx(long lModuleNo, DWORD *upModuleSubID, char *szModuleName, char *szModuleDescription);
C#
uint AxdInfoGetModuleEx(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];

AxdInfoGetModuleEx(0, &upModuleSubID, szModuleName, szModuleDescription);

AxdInfoGetModuleStatus

Purpose

지정한 모듈 번호로 해당 모듈이 제어가 가능한 상태인지 반환한다.

Format

C++
DWORD AxdInfoGetModuleStatus(long lModuleNo);
C#
uint AxdInfoGetModuleStatus(int lModuleNo);

Parameters

[in/out] Name [Init Value] Explanation
[in]lModuleNo 모듈 번호 (0 ~ N-1)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공 (제어 가능)
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호

Description

사용자가 지정한 모듈 번호로 해당 모듈이 제어가 가능한 상태인지 반환 한다. 제어 불가능한 상태라면 AXT_RT_DIO_NOT_MODULE Return 값을 반환한다.

예제 코드

// 0번째 모듈의 제어 가능한 상태를 확인 한다.
DWORD uReturn;
CString strData;

uReturn = AxdInfoGetModuleStatus (0);

strData.Format(0 모듈의 상태는 %d 입니다., uReturn);
AfxMessageBox(strData);