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 속도로 이송하게 된다
}