cmsSxGetCorrection


SYNOPSYS

VT_I4 cmsSxGetCorrection ([in] VT_I4 BoardId, [in] VT_I4 Axis, [out] VT_PI4 CorrMode,
[out] VT_PR8 CorrAmount, [out] VT_PR8 CorrVel, [out] VT_PI4 CntrMask)

DESCRIPTION

  • cmsSxGetCorrection() 함수는 백래쉬/슬립 보정에 대한 현재 설정값을 읽어들이는 함수입니다.

  • 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다.

PARAMETER

▶ BoardId: 사용자가 설정한 디바이스(보드) ID.

▶ Axis: 축(채널) 번호. 축번호는 상수값으로 0 번째 채널을 기준 채널로 임의의 채널을 설정할 수 있습니다.

▶ CorrMode : cmsSxSetCorrection 함수의 인자이며, 보정 모드의 설정값은 다음과 같습니다.

BIT No.

Meaning

0 (cmsCORR_DISABLE)

보정기능을 상태입니다.

1 (cmsCORR_BACKLASH)

보정모드를 백래쉬 보정모드로 동작중입니다.

2 (cmsCORR_SLIP)

보정모드를 슬립 보정모드로 동작중입니다.

▶ CorrAmount : cmsSxGetCorrection 함수의 인자이며, 보정 펄스의 수를 반환합니다.

▶ CorrVel : cmsSxGetCorrection 함수의 인자이며, 보정펄스의 주파수를 반환합니다

RETURN VALUE

Value

Meaning

음수

수행 실패

ERR_NONE

수행 성공

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
43
44
45
   C/C++
   #define DEV0 0
   다음의 예제는 백래쉬 보정을 적용할 때의 동작에 대한 설명입니다. 본 예에서는 “Unit
   distance”와 “Unit speed”가 각각 1 로 설정되었음을 가정합니다.
   // 백래쉬보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS) //
   cmsSxSetCorrection (DEV0, 0, cmsCORR_BACK, 1000, 1000);
   ////////////////////////////////////////////////////////////////
   // 이전에 (-)방향 이동을 수행하였다면 아래에서 백래쉬 보정을 수행합니다.
   // 1000 PPS 의 속도로 (+)1000 펄스를 출력한 후에 지정한 SxMove()가 수행됩니다.
   cmsSxMove(DEV0, 0, 10000);
   // 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
   cmsSxMove(DEV0, 0, 10000);
   // 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
   cmsSxMove(DEV0, 0, 10000);
   ////////////////////////////////////////////////////////////////
   // 이동방향이 전환되므로 아래에서 백래쉬 보정을 수행합니다. 1000 PPS 의 속도로 (-
   )1000 펄스를 출력한
   // 후에 지정한 SxMove()가 수행됩니다.
   cmsSxMove(DEV0, 0, -10000);
   // 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
   cmsSxMove(DEV0, 0, -10000);

   -----------------------------------------------------------
   Visual Basic
   Const DEV0 = 0
   '다음의 예제는 백래쉬 보정을 적용할 때의 동작에 대한 설명입니다.
   '본 예에서는 "Unit distance"와 "Unit speed"가 각각 1 로 설정되었음을 가정합니다.
   '// 백래쉬보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS)
   Call SxSetCorrection(DEV0, 0, cmsCORR_BACK, 1000, 1000)
   '///////////////////////////////////////////////////////////////
   '// 이전에 (-)방향 이동을 수행하였다면 아래에서 백래쉬 보정을 수행합니다.
   '// 1000 PPS 의 속도로 (+)1000 펄스를 출력한 후에 지정한 SxMove()가
   ‘// 수행됩니다.
   Call SxMove(DEV0, 0, 10000)
   '// 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
   Call SxMove(DEV0, 0, 10000)
   '// 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
   Call SxMove(DEV0, 0, 10000)
   '///////////////////////////////////////////////////////////////
   '// 이동방향이 전환되므로 아래에서 백래쉬 보정을 수행합니다. 1000 PPS 의
   '속도로(-)1000 펄스를 출력한 후에 지정한 SxMove()가 수행됩니다.
   Call SxMove(DEV0, 0, -10000)
   '// 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
   Call SxMove(DEV0, 0, -10000)
   -----------------------------------------------------------

EXAMPLE2

  • 다음의 예제는 슬립보정을 적용할 때의 동작에 대한 설명입니다. 본 예에서는 “Unit distance”와 “Unit speed”가 각각 1 로 설정되었음을 가정합니다.

 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
   C/C++
   // 슬립보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS) //
   cmsSxSetCorrection (DEV0, 0, cmsCORR_SLIP, 1000, 1000);
   // (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   cmsSxMove(DEV0, 0, 10000);
   // (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   cmsSxMove(DEV0, 0, 10000);
   // (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   cmsSxMove(DEV0, 0, -10000);
   // (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   cmsSxMove(DEV0, 0, -10000);

   -----------------------------------------------------------
   Visual Basic
   '// 슬립보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS)
   Call cmsSxSetCorrection(DEV0, 0, cmsCORR_SLIP, 1000, 1000)
   '// (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   Call cmsSxMove(DEV0, 0, 10000)
   '// (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   Call cmsSxMove(DEV0, 0, 10000)
   '// (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   Call cmsSxMove(DEV0, 0, -10000)
   '// (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
   Call cmsSxMove(DEV0, 0, -10000)

   -----------------------------------------------------------