5.1.2. secSlv_InPDO_GetBufPtr_A¶
SYNOPSYS¶
void* secSlv_InPDO_GetBufPtr_A(
[in] t_i32 NetID,
[in] t_ui16 SlaveIdx,
[out] t_i32 ErrCode
)
DESCRIPTION¶
Input PDO 데이터를 직접 접근해 메모리 주소값(버퍼 포인터)을 반환합니다.
PARAMETER¶
NetID : 사용자가 사용 할 Network 번호
SlaveIndex : 슬레이브 번호 (1 Base)
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
해당 슬레이브의 Input PDO데이터가 제공되는 메모리 주소값(버퍼 포인터)을 반환합니다.
Example¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | // 슬레이브 인덱스가 1인 32채널 디지털입력 슬레이브 모듈이 있다고 가정합니다.
// 해당 슬레이브는 32비트(4바이트)의 Input PDO 데이터를 제공하며 각각의 비트는 디지털입력 채널에 대응되는 상태값이라 가정합니다.
// 이 때 해당 슬레이브의 Input PDO 버퍼를 직접 액세스해서 각 채널의 디지털 접점 값을 사용하는 예제입니다.
#define NETID 0
#define SLAVE_ADDR 0x201
t_ui32 *pdwPtr;
pdwPtr = secSlv_InPDO_GetBufPtr_A(NETID, SLAVE_ADDR, 0, NULL);
if(pdwPtr != NULL){
printf("D/I CH0 Value = %d\n", (*pdwPtr) & 0x1);
printf("D/I CH1 Value = %d\n", ((*pdwPtr)>>1) & 0x1);
printf("D/I CH2 Value = %d\n", ((*pdwPtr)>>2) & 0x1);
printf("D/I CH3 Value = %d\n", ((*pdwPtr)>>3) & 0x1);
}
|
See also