cmsIxSetSpeedPattern¶
SYNOPSYS¶
VT_I4 cmsIxSetSpeedPattern ([in] VT_I4 BoardId, [in] VT_I4 MapIndex, [in] VT_I4 IsVectorSpeed,
[in] VT_I4 SpeedMode, [in] VT_R8 IniRatio, [in] VT_R8 EndiRatio,
[in] VT_R8 VelRatio, [in] VT_R8 AccRatio, [in] VT_R8 DecRatio)
DESCRIPTION¶
cmsIxSetSpeedPattern은 “기본보간제어”의 이송 속도에 대한 환경설정을 정의합니다. 사용자가 지정한 작업 속도는 “IsVectorSpeed”의 설정값이 ‘TRUE’이면 벡터 스피드, ‘FALSE’이면 마스터 스피드가 적용됩니다. “벡터속도”에 대한 자세한 내용은 아래의 “REFERENCE” 항목을 참조하십시오.
보간 작업 속도를 벡터속도로 설정해야만 하는 특별한 경우를 제외하고는 보간 작업 속도를 마스터속도로 설정하는 것이 모터의 최대속도를 활용하는데 있어서 편리합니다.
이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cms 가 붙지 않습니다.
PARAMETER¶
▶ BoardId: 사용자가 설정한 디바이스(보드) ID.
▶ MapIndex: 맵번호(Map index), 이 맵번호를 사용하기전에 먼저 cmsIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑되어 있어야 합니다.
▶ IsVertorSpeed : cmsIxSetSpeedPattern함수의 인자이며, TRUE로 설정했을 경우에는 벡터스피드 모드로, FALSE로 설정했을 경우에는 마스터스피드 모드로 설정됩니다.
▶ SpeedMode : cmsIxSetSpeedPattern 함수의 인자이며, 속도모드를 설정합니다. 설정값은 다음과 같습니다.
Value
Meaning
0 또는 cmsSPEED_CONDSTANT CONSTANT 속도모드 => 가감속을 수행하지 않습니다. 1 또는 cmsSPEED_TRAPEZOIDAL TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을수행합니다. 2 또는 cmsSPEED_SCURVE S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다.
▶ IniRatio: cmsIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 초기속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 설정 합니다.
▶ EndiRatio: cmsIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 최종속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 가속도를 설정합니다.
▶ VelRatio : cmsIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 작업속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 설정 합니다.
▶ AccRatio : cmsIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 가속도 비율을 설정합니다. 벡터스피드모드 일 때는 PPS단위를 사용하여 가속도를 설정합니다.
▶ DecRatio : cmsIxSetSpeedPattern 함수의 인자이며, 마스터스피드모드 일 때는 감속도 비율을 설정합니다. 벡터스피드모드 일 때는 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);
|