cmlPmIxSetSpeedPattern


SYNOPSYS

VT_I4 cmlPmIxSetSpeedPattern([in] VT_I4 BoardID,  [in] VT_I4 NodeId, [in] VT_I4 MapIndex,
[in] VT_I4 IsVectorSpeed, [in] VT_I4 SpeedMode,
[in] VT_R8 Vel, [in] VT_R8 Acc, [in] VT_R8 Dec )

DESCRIPTION

  • cmlPmIxSetSpeedPattern() 함수는 “기본보간제어”의 이송 속도에 대한 환경설정을 정의합니다. 사용자가 지정한 작업 속도는 “IsVectorSpeed”의 설정 값이 „cmlTRUE‟이면 벡터 속도(Vector Speed), „cmlFALSE‟이면 마스터 속도(Master Speed)가 적용됩니다. “벡터 속도”에 대한 자세한 내용은 아래의 “REFERENCE” 항목을 참조하십시오.

  • 보간 작업 속도를 벡터속도로 설정해야만 하는 특별한 경우를 제외하고는 보간 작업 속도를 마스터속도로 설정하는 것이 모터의 최대속도를 활용하는데 있어서 편리합니다.

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

PARAMETER

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

▶ NodeId : 사용자가 제어하고자 하는 노드 번호.

▶ MapIndex : 맵 번호(Map index), 이 맵번호를 사용하기 전에 먼저 cmlPmIxMapAxes() 함수를 통하여 해당 맵번호에 유효한 축들이 맵핑 되어 있어야 합니다.

▶ IsVectorSpeed : 벡터 속도 또는 마스터 속도 모드를 설정 혹은 반환합니다.

Value

Meaning

0(cmlFALSE)

마스터 속도 모드. (Master Speed Mode)

1(cmlTRUE)

벡터 속도 모드. (Vector Speed Mode)

▶ SpeedMode : cmlPmIxSetSpeedPattern 함수의 인자이며, 속도모드를 설정합니다. 설정값은 다음과 같습니다.

Value

Meaning

0 (cmlMODE_C)

CONSTANT 속도모드 => 가감속을 수행하지 않습니다.

1 (cmlMODE_T)

TRAPEZOIDAL 속도모드 => 사다리꼴 가감속을 수행합니다.

2 (cmlMODE_S)

S-CURVE 속도모드 => S-CURVE 가감속을 수행합니다.

▶ Vel : 마스터 속도 모드 일 때는 작업속도 비율(%)을 설정 혹은 반환합니다. 벡터 속도 모드 일 때는 PPS단위를 사용하여 설정 혹은 반환합니다.

▶ Acc : 마스터 속도 모드 일 때는 가속도 비율(%)을 설정 혹은 반환합니다. 벡터 속도 모드 일 때는 PPS단위를 사용하여 가속도를 설정 혹은 반환합니다.

▶ Dec : 마스터 속도 모드 일 때는 감속도 비율(%)을 설정 혹은 반환합니다. 벡터 속도 모드 일 때는 PPS단위를 사용하여 감속도를 설정 혹은 반환합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

ERR_NONE

수행 성공

REFERENCE

  • 직선 보간 이동시에 작업속도의 적용

  • 마스터 속도 모드(Master Speed Mode)로 보간 작업시에는 각 축의 속도가 각 축의 이동거리에 비례하여 자동으로 설정됩니다. 이때 cmlPmIxSetSpeedPattern() 함수의 WorkSpeed 매개 변수(媒介變數)를 통하여 지정되는 보간 작업속도는 마스터속도로 적용됩니다. 각 보간 이동시에 이동거리가 가장 큰 축을 “마스터축”이라고 하며 마스터축의 속도를 “마스터속도”라 합니다. 각 보간 이동시에 마스터축의 속도는 사용자가 지정한 보간 작업속도로 설정되며, 마스터축 이외의 다른 축의 속도는 마스터축과 해당 축의 이동 거리

비에 따라서 자동으로 설정됩니다.

  • 보간 작업속도의 적용 예 cmlPmIxSetSpeedPattern() 함수의 WorkSpeed를 10000으로 설정하고 X,Y,Z축의 보간 작업을 수행하는 경우에 이동 거리에 따른 각 축의 속도 관계는 아래와 같습니다(표에서 배경이 회색으로 되어 있는 것은 마스터축임을 의미하는 것입니다).

../../../../_images/15-13.jpg ../../../../_images/15-21.jpg
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
 C/C++
 #include “ComiMLink2_SDK.h”
 #include “ComiMLink2_SDK_Def.h”
 #define MAP0 0
 // 보간 맵 0
 #define NODE_ID 1 // 노드 ID 1
 long BoardID = 0;
 cmlPmIxMapAxes(BoardID, 0, MAP0, ccmlX1_MASK | ccmlY1_MASK );
 /*MAP0로 설정된 축들을 벡터 스피드로
 가속도 10000, 감속도 10000, 등속도 2000으로 설정합니다.*/
 cmlPmIxSetSpeedPattern(BoardID, 0, MAP0, cmlTRUE, cmlMODE_T, 2000, 10000, 10000 );
 long nSpeedMode = 0, nIsVectorSpeed = 0;
 double fVel = 0.0f, fAcc = 0.0f, fDec = 0.0f;
 //MAP0에 설정된 속도 패턴 값들을 반환합니다.
 cmlPmIxGetSpeedPattern (BoardID, 0, MAP0, &nIsVectorSpeed, &nSpeedMode, &fVel, &fAcc, &fDec );