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;
  }