11.2.107. ecmSxSD_SetInputEnv¶
SYNOPSIS¶
t_success ecmSxSD_SetInputEnv(
t_i32 NetID,
t_i32 Axis,
t_dword LogBitAddr,
t_bool IsInvertLogic,
t_i32 FilterCount,
t_i32 *ErrCode
)
DESCRIPTION¶
SD입력 신호의 환경을 설정하는 함수입니다.
PARAMETER¶
NetID : Network 번호
Axis : 대상 축 번호
LogBitAddr : 논리비트주소를 나타내는 인자입니다.
IsInvertLogic : 신호의 입력 로직을 반대로 적용할 것인지를 나타내는 인자입니다
Value |
Meaning |
---|---|
0 |
입력 값이 0이면 SD 기능이 활성화 됩니다. |
1 |
입력 값이 1이면 SD 기능이 활성화 됩니다. |
FilterCount : SD 입력 신호에 적용할 필터의 주기를 설정하는 인자입니다. 이 값의 단위는 통신 사이클의 카운트 단위입니다. 입력 신호의 ACTIVE 상태가 지정한 사이클 카운트 이상의 시간 동안 유지되지 않으면 해당 입력신호는 무효 처리됩니다.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
함수 수행의 성공 여부를 반환합니다.
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 | #define NETID 0
#define AXIS 0
void OnInitialSetup_SD ()
{
#define SD_CH 0 // D/I CH0을 HEMG 신호로 사용하는 것으로 가정함
#define FILTER_COUNT 1 // 필터카운트값을 1로 설정 => 2회의 통신 사이클 동안 입력상태를 유지하지 않으면 노이즈로 처리
t_i32 errCode;
t_dword dwLogBitAddr; // HEMG로 사용할 입력채널 설정
dwLogBitAddr = ecdiLogBitAddr_FromGlobalChannel (NETID, SD_CH, &errCode); // 전역채널 -> 논리비트주소로 변환
ecmSxSD_SetInputEnv (NETID, AXIS, dwLogBitAddr, false, FILTER_COUNT, &errCode); // SD 입력 채널 등록
ecmSxSD_SetLatchMode (NETID, AXIS, false, &errCode); // SD 래치 모드 설정
}
void OnStartMove_SD()
{
#define NORM_SPEED 500000
#define SD_SPEED 30000
t_i32 errCode;
ecmSxSD_SetSpeed (NETID, AXIS, SD_SPEED, &errCode); // SD 속도 설정
ecmSxSD_SetEnable (NETID, AXIS, true, &errCode); // SD 속도 설정
ecmSxCfg_SetSpeedPatt (NETID, AXIS, ecmSMODE_SCURVE, 0, 0, NORM_SPEED, NORM_SPEED*5, NORM_SPEED*5, &errCode);
ecmSxMot_VMoveStart (NETID, AXIS, ecmDIR_P, &errCode);
// 이 이후에 축의 이송은 SD신호가 감지되지 않으면 NORM_SPEED 속도로 이송되다가, SD 신호가 ON으로 감지되면 SD_SPEED 속도로 이송하게 된다
}
|