보드 및 모듈 정보
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);