11.2.78. ecmSxCmpCont_SetEnable¶
SYNOPSIS¶
t_success ecmSxCmpCont_SetEnable(
t_i32 NetID,
t_i32 Axis,
t_bool IsEnable,
t_i32 GdoChanIdx,
t_i32 *ErrCode
)
DESCRIPTION¶
이 함수는 ‘Continuous 모드’의 위치비교출력 기능을 활성화 또는 비활성화합니다.
PARAMETER¶
NetID : Network 번호
Axis : 대상 축 번호.
IsEnable : 이 값을 0으로 하면 Continuous 모드의 위치비교출력 기능이 비활성화되고, 1로 하면 활성화됩니다.
GdoChanIdx : 위치비교신호(CMP)를 출력할 범용 디지털 채널 번호를 설정합니다. 하나의 마스터 장치는 4개의 범용 디지털 출력 채널을 제공합니다. 이 중에서 위치비교신호를 출력하는 용도로 사용할 채널을 선택하여 사용하게 됩니다. 채널 번호는 0부터 시작합니다.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
이 리턴값은 불 형(Boolean Type) 을 가지고 있습니다
Value |
Meaning |
---|---|
0 |
함수 수행에 실패하였음을 의미합니다. |
1 |
함수 수행에 성공하였음을 의미합니다. |
EXAMPLE¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | #define NETID 0
#define AXIS 0
#define TABLE_SIZE 10
t_i32 ErrCode = 0;
// 1) P1(시작) 위치로 이송 //
if(!ecmSxMot_MoveTo(NETID, AXIS, 0, &ErrCode)){
ecUtl_ShowError_A (NULL, "ecmSxMot_MoveTo() function fail!, ec = %d", ErrCode);
return;
}
// 2) 테이블 크기 설정 //
if(!ecmSxCmpCont_SetTableSize (NETID, AXIS, TABLE_SIZE, &ErrCode)){
ecUtl_ShowError_A (NULL, "ecmSxCmpCont_SetTableSize() function fail!, ec = %d", ErrCode);
return;
}
// 3) 테이블 데이터 설정 //
t_f64 RefPos = 10000;
for(int i=0; i<TABLE_SIZE; i++){
ecmSxCmpCont_SetTableData (NETID, AXIS, i, ecmCMP_CNTR_FEED,
ecmCMP_METH_EQ_BIDIR, RefPos, ecmLOGIC_A, 50/*OutSigOnTime*/,
&ErrCode);
RefPos += 10000;
}
// 4) Active Table Index를 0으로 리셋 //
if(!ecmSxCmpCont_SetActTblIdx(NETID, AXIS, 0, &ErrCode)){
ecUtl_ShowError_A (NULL, "ecmSxCmpCont_SetActTblIdx() function fail!, ec = %d",
ErrCode);
return;
}
// 6) CMP 모니터 카운트값 리셋 //
ecmSxCmpOne_ResetOutSts(NETID, AXIS, NULL);
// 7) 위치비교출력 기능 활성화. CMP신호는 GDO CH0을 통해서 출력 //
if(!ecmSxCmpOne_SetEnable (NETID, AXIS, true/*IsEnable*/, 0/*GDO CH*/, &ErrCode)){
ecUtl_ShowError_A (NULL, "ecmSxCmpOne_SetEnv() function fail!, ec = %d", ErrCode);
return;
}
|