입력 포트 읽기
Function | Description |
---|---|
AxdiReadInport | 전체 입력 접점 모듈의 Offset 위치에서 bit 단위로 데이터를 읽는다. |
AxdiReadInportBit | 지정한 입력 접점 모듈의 Offset 위치에서 bit 단위로 데이터를 읽는다. |
AxdiReadInportByte | 지정한 입력 접점 모듈의 Offset 위치에서 byte 단위로 데이터를읽는다. |
AxdiReadInportWord | 지정한 입력 접점 모듈의 Offset 위치에서 word 단위로 데이터를읽는다. |
AxdiReadInportDword | 지정한 입력 접점 모듈의 Offset 위치에서 double word 단위로 데이터를 읽는다. |
AxdiReadInportByBitOffset | 지정한 입력 접점 모듈의 bit Offset 위치에서 bit Length 단위로데이터를 읽는다. |
AxdiReadInport
Purpose
지정한 입력 접점 모듈의 Offset 위치에서 bit 단위로 데이터를 읽는다.
Format
C++
DWORD AxdiReadInport(long lOffset, DWORD *upValue);
C#
uint AxdiReadInport(int lOffset, ref uint upValue);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lOffset | 전체 입력 접점에 대한 Offset 위치 |
[out]upValue | 입력 접점 값 (Boolean) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
Description
전체 입력 접점 모듈의 Offset 위치에서 bit 단위로 데이터를 읽는다.
Offset 은 ‘0’부터 총 입력 접점 수 – 1 까지 사용할 수 있다.
예제 코드
// 전체 출력 모듈의 Offset 0번지에서 bit 단위로 데이터를 읽는다.
DWORD uValue;
AxdiReadInport(0, &uValue);
AxdiReadInportBit
Purpose
지정한 입력 접점 모듈의 Offset 위치에서 bit 단위로 데이터를 읽는다.
Format
C++
DWORD AxdiReadInportBit(long lModuleNo, long lOffset, DWORD *upValue);
C#
uint AxdiReadInportBit(int lModuleNo, int lOffset, ref uint upValue);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 |
[in]lOffset | 입력 접점에 대한 Offset 위치 |
[out]upValue | 입력 접점 값 (Boolean) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
Description
사용자가 지정한 입력 접점 모듈의 Offset 위치에서 bit 단위로 데이터를 읽는다.
지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 읽는다.
Offset 범위와 Return 값
Module | Offset | Level |
---|---|---|
SIO-DI32 | 0~31 | 0(Off), 1(On) |
SIO-DO32x | - | - |
SIO-DB32x | 0~15 | 0(Off), 1(On) |
예제 코드
// 0번째 모듈에서 Offset 0번지에 데이터를 bit 단위로 읽는다.
DWORD uValue;
AxdiReadInportBit(0, 0, &uValue);
AxdiReadInportByte
Purpose
지정한 입력 접점 모듈의 Offset 위치에서 byte 단위로 데이터를 읽는다.
Format
C++
DWORD AxdiReadInportByte(long lModuleNo, long lOffset, DWORD *upValue);
C#
uint AxdiReadInportByte(int lModuleNo, int lOffset, ref uint upValue);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 |
[in]lOffset | 입력 접점에 대한 Offset 위치 |
[out]upValue | 입력 접점 값 (Byte) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
Description
사용자가 지정한 입력 접점 모듈의 Offset 위치에서 byte 단위로 데이터를 읽는다.
지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 읽는다.
Offset 범위와 Return 값
Module | Offset | Level |
---|---|---|
SIO-DI32 | 0,1,2,3 | 00h~FFh |
SIO-DO32x | - | - |
SIO-DB32x | 0,1 | 00h~FFh |
예제 코드
// 0번째 모듈에서 Offset 0번지에 데이터를 byte 단위로 읽는다.
DWORD uValue;
AxdiReadInportByte(0, 0, &uValue);
AxdiReadInportWord
Purpose
지정한 입력 접점 모듈의 Offset 위치에서 word 단위로 데이터를 읽는다.
Format
C++
DWORD AxdiReadInportWord(long lModuleNo, long lOffset, DWORD *upValue);
C#
uint AxdiReadInportWord(int lModuleNo, int lOffset, ref uint upValue);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 |
[in]lOffset | 입력 접점에 대한 Offset 위치 |
[out]upValue | 입력 접점 값 (Word) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
Description
사용자가 지정한 입력 접점 모듈의 Offset 위치에서 word 단위로 데이터를 읽는다.
지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 읽는다.
Offset 범위와 Return 값
Module | Offset | Level |
---|---|---|
SIO-DI32 | 0,1 | 0000h~FFFFh |
SIO-DO32x | - | - |
SIO-DB32x | 0 | 0000h~FFFFh |
예제 코드
// 0번째 모듈에서 Offset 0번지에 데이터를 word 단위로 읽는다.
DWORD uValue;
AxdiReadInportWord (0, 0, &uValue);
AxdiReadInportDword
Purpose
지정한 입력 접점 모듈의 Offset 위치에서 double word 단위로 데이터를 읽는다.
Format
C++
DWORD AxdiReadInportDword(long lModuleNo, long lOffset, DWORD *upValue);
C#
uint AxdiReadInportDWord(int lModuleNo, int lOffset, ref uint upValue);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 |
[in]lOffset | 입력 접점에 대한 Offset 위치 |
[out]upValue | 입력 접점 값 (Double Word) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
Description
사용자가 지정한 입력 접점 모듈의 Offset 위치에서 double word 단위로 데이터를 읽는다.
지정한 모듈이 어떤 모듈인지 확인하여 아래의 Table 에서 Offset 사용 범위를 참조하여 읽는다.
Offset 범위와 Return 값
Module | Offset | Level |
---|---|---|
SIO-DI32 | 0 | 00000000h~FFFFFFFFh |
SIO-DO32x | - | - |
SIO-DB32x | 0 | 00000000h~FFFFFFFFh |
예제 코드
// 0번째 모듈에서 Offset 0번지에 데이터를 double word 단위로 읽는다.
DWORD uValue;
AxdiReadInportDword (0, 0, &uValue);
AxdiReadInportByBitOffset
Purpose
지정한 입력 접점 모듈의 bit Offset 위치에서 bit Length 단위로 데이터를 읽는다. EhterCAT 전용 함수
Format
C++
DWORD AxdiReadInportByBitOffset(long lModuleNo, DWORD uBitOffset, DWORD uDataBitLength, BYTE *pbyData);
C#
uint AxdiReadInportByBitOffset(int lModuleNo, uint uBitOffset, uint uDataBitLength, ref uint pbyData);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 |
[in]uBitOffset | 입력 접점에 대한 bit Offset 위치 |
[in]uBitLength | 입력받을 입력 접점들의 총 bit 길이 |
[out]pbyData 입력 | 접점 값 (uBitLength 값 만큼 읽음) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[3051] AXT_RT_DIO_NOT_MODULE : DIO 모듈 없음
[3101] AXT_RT_DIO_INVALID_MODULE_NO : 유효하지 않은 DIO 모듈 번호
[3102] AXT_RT_DIO_INVALID_OFFSET_NO : 유효하지 않은 DIO OFFSET 번호
Description
사용자가 지정한 입력 접점 모듈의 bit Offset 위치에서 bit Length 단위로 데이터를 읽는다.
입력 접점값을 읽어올 배열의 bit size 는 uBitLength 보다 커야한다.
예제 코드
// 지정한 입력 접점 모듈의 bit Offset 위치에서 bit Length 단위로 데이터를 읽는다.
BYTE byData[4] = {0};
AxdiReadInportByBitOffset(0, 0, 32, byData);