cmsIxGetSpeedPattern¶
SYNOPSYS¶
VT_I4 cmsIxGetSpeedPattern ([in] VT_I4 BoardId, [in] VT_I4 MapIndex, [out] VT_PI4 IsVectorSpeed,
[out] VT_PI4 SpeedMode, [out] VT_PR8 IniRatio, [out] VT_PR8 EndiRatio, [out] VT_PR8 VelRatio,
[out] VT_PR8 AccRatio, [out] VT_PR8 DecRatio)
DESCRIPTION¶
cmsIxGetSpeedPattern()은 “기본보간제어”의 이송속도에 대한 설정된 값을 반환합니다.
이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다.
PARAMETER¶
▶ BoardId: 사용자가 설정한 디바이스(보드) ID.
▶ MapIndex: 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmsIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다.
▶ IsVertorSpeed : cmsIxGetSpeedPattern함수의 인자이며, 스피드 모드를 반환합니다. TRUE일 경우엔 벡터스피드 모드, FALSE일 경우엔 마스터스피드 모드입니다.
▶ SpeedMode : cmsIxGetSpeedPattern 함수의 인자이며, 속도모드를 반환합니다. 반환값은 다음과 같습니다.
Value
Meaning
0 또는 cmsSPEED_CONDSTANT CONSTANT 속도모드 => 가감속을 수행하지 않습니다. 1 또는 cmsSPEED_TRAPEZOIDAL TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을수행합니다. 2 또는 cmsSPEED_SCURVE S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다.
▶ IniRatio: cmsIxGetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 초기속도 비율을 반환합니다. 벡터스피드모드 일 때의 반환값은 PPS단위입니다.
▶ EndiRatio: cmsIxGetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 최종속도 비율을 반환합니다. 벡터스피드모드 일 때의 반환값은 PPS단위입니다.
▶ VelRatio : cmsIxGetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 작업속도 비율을 반환합니다. 벡터스피드모드 일 때의 반환값은 PPS단위입니다.
▶ AccRatio : cmsIxGetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 가속도 비율을 반환합니다. 벡터스피드모드 일 때의 반환값은 PPS단위입니다.
▶ DecRatio : cmsIxGetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 감속도 비율을 반환합니다. 벡터스피드모드 일 때의 반환값은 PPS단위입니다.
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
ERR_NONE |
수행 성공 |
REFERENCE¶
직선 보간 이동시에 작업속도의 적용
마스터 속도 모드(Master Speed Mode)로 보간 작업시에는 각 축의 속도가 각 축의 이동거리에 비례하여 자동으로 설정됩니다. 이때 cmsIxSetSpeedPattern() 함수의 WorkSpeed 매개 변수(媒介變數)를 통하여 지정되는 보간 작업속도는 마스터속도로 적용됩니다. 각 보간 이동시에 이동거리가 가장 큰 축을 “마스터축”이라고 하며 마스터축의 속도를 “마스터속도”라 합니다. 각 보간 이동시에 마스터축의 속도는 사용자가 지정한 보간 작업속도로 설정되며, 마스터축 이외의 다른 축의 속도는 마스터축과 해당 축의 이동 거리
비에 따라서 자동으로 설정됩니다.
보간 작업속도의 적용 예 cmsIxSetSpeedPattern() 함수의 WorkSpeed를 10000으로 설정하고 X,Y,Z축의 보간 작업을 수행하는 경우에 이동 거리에 따른 각 축의 속도 관계는 아래와 같습니다(표에서 배경이 회색으로 되어 있는 것은 마스터축임을 의미하는 것입니다).
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 | #define DEV0 0 // 디바이스 번호 => 0
#define MAP_IDX 0 // 맵번호 => 0
// 코드의 간결성을 위하여 앞에서 행해져야할 초기화 루틴은 모두 생략 //
……
// X1축과 Y1축을 0번 맵번호로 맵핑 //
cmsIxMapAxes (DEV0, MAP_IDX, cmsX1_MASK | cmsY1_MASK, 0);
// 속도패턴 설정 : 벡터속도 1000 PPS, 벡터가속도 10000 PPS/sec (가속시간 0.1초) //
// 여기서 2번째 인자가 cmsTRUE 이면, Vector 속도 모드를 의미한다.
cmsIxSetSpeedPattern(DEV0, MAP_IDX, ,cmsTRUE, cmsSMODE_S, 1000, 10000, 10000);
// 직선보간이동 수행 : (3000, 4000) 만큼 이동 //
double fDistList[2]={3000, 4000};
cmsIxLine (DEV0, MAP_IDX, fDistList, cmsFALSE);
|