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)
-----------------------------------------------------------
|