cmcSxGetCorrection


SYNOPSYS

VT_I4 cmcSxGetCorrection([in] VT_I4 BoardID, [in] VT_I4 Axis, [in] VT_I4 CorrMode,
[in] VT_R8 CorrAmount, [in] VT_R8 CorrVel, [in] VT_I4 CntrMask)

DESCRIPTION

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

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

PARAMETER

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

▶ Axis: Axis 번호(축 번호가 3부터 시작됩니다.).

▶ CorrMode : cmcSxGetCorrection함수의 인자이며, 반환값은 다음과 같습니다.

BIT No.

Meaning

0 (cmcCORR_DISABLE)

보정기능을 비활성화합니다.

1 (cmcCORR_BACKLASH)

보정모드를 백래쉬 보정모드로 설정합니다.

2 (cmcCORR_SLIP)

보정모드를 슬립 보정모드로 설정합니다.

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

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

▶ CntrMask : cmcSxGetCorrection 함수의 인자이며, 보정펄스가 출력되는 동안에 각 카운터의 동작여부를 비트별로 반환합니다. 각 비트가 나타내는 값은 아래 표를 참고 하십시오.

Value

Meaning

BIT0

1: 보정펄스 출력시에 Command Counter 가 동작하는 모드입니다.

BIT1

1 : 보정펄스 출력시에 Feedback Counter가 동작하는 모드입니다.

BIT2

1 : 보정펄스 출력시에 Deviation Counter가 동작하는 모드입니다.

BIT3

1 : 보정펄스 출력시에 General Counter가 동작하는 모드입니다.

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
 C/C++
 long BoardID = 0;
 다음의 예제는 백래쉬 보정을 적용할 때의 동작에 대한 설명입니다. 본 예에서는 “Unit
 distance”와 “Unit speed”가 각각 1로 설정되었음을 가정합니다.
 // 백래쉬보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS) //
 cmcSxGetCorrection (BoardID, 3, cmCORR_BACK, 1000, 1000, 0x0);
 ////////////////////////////////////////////////////////////////
 // 이전에 (-)방향 이동을 수행하였다면 아래에서 백래쉬 보정을 수행합니다.
 // 1000 PPS의 속도로 (+)1000펄스를 출력한 후에 지정한 SxMove()가 수행됩니다.
 cmcSxMove(BoardID, 3, 10000);
 // 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
 cmcSxMove(BoardID, 3, 10000);
 // 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
 cmcSxMove(BoardID, 3, 10000);
 ////////////////////////////////////////////////////////////////
 // 이동방향이 전환되므로 아래에서 백래쉬 보정을 수행합니다. 1000 PPS의 속도로 (
 )1000 펄스를 출력한
 // 후에 지정한 SxMove()가 수행됩니다.
 cmcSxMove(BoardID, 3, -10000);
 // 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
 cmcSxMove(BoardID, 3, -10000);
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
 Visual Basic
 '다음의 예제는 백래쉬 보정을 적용할 때의 동작에 대한 설명입니다.
 '본 예에서는 "Unit distance"와 "Unit speed"가 각각 1로 설정되었음을 가정합니다.
 „BoardID 는 0으로 가정합니다.
 '// 백래쉬보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS)
 Call SxSetCorrection(BoardID, 3, cmcCORR_BACK, 1000, 1000, 0)
 '///////////////////////////////////////////////////////////////
 '// 이전에 (-)방향 이동을 수행하였다면 아래에서 백래쉬 보정을 수행합니다.
 '// 1000 PPS의 속도로 (+)1000펄스를 출력한 후에 지정한 SxMove()가
 ‘// 수행됩니다.
 Call SxMove(BoardID, 3, 10000)
 '// 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
 Call SxMove(BoardID, 3, 10000)
 '// 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
 Call SxMove(BoardID, 3, 10000)
 '///////////////////////////////////////////////////////////////
 '// 이동방향이 전환되므로 아래에서 백래쉬 보정을 수행합니다. 1000 PPS의
 '속도로(-)1000펄스를 출력한 후에 지정한 SxMove()가 수행됩니다.
 Call SxMove(BoardID, 3, -10000)
 '// 이동방향이 이전과 동일하므로 아래에서는 백래쉬보정을 하지 않습니다.
 Call SxMove(BoardID, 3, -10000)

EXAMPLE2

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

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
 C/C++
 //BoardID는 0으로 가정합니다.
 // 슬립보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS) //
 // (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 cmcSxMove(BoardID, 3, 10000);
 // (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 cmcSxMove(BoardID, 3, 10000);
 // (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 cmcSxMove(BoardID, 3, -10000);
 // (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 cmcSxMove(BoardID, 3, -10000);
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
 Visual Basic

 „BoardID 는 0으로 가정합니다.
 '// 슬립보정 모드로 설정 (보정펄스수:1000, 보정펄스출력속도:1000 PPS)
 Call cmcSxGetCorrection(BoardID, 3, cmCORR_SLIP, 1000, 1000, 0)
 '// (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 Call cmcSxMove(BoardID, 3, 10000)
 '// (+)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 Call cmcSxMove(BoardID, 3, 10000)
 '// (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 Call cmcSxMove(BoardID, 3, -10000)
 '// (-)1000 펄스의 보정펄스가 출력된 후에 SxMove()가 수행됩니다
 Call cmcSxMove(BoardID, 3, -10000)