4.1.30. cmmCfgSetRingCntr¶
SYNOPSYS¶
VT_I4 cmmCfgSetRingCntr(
[in] VT_I4 Axis, [in] VT_I4 TargCntr, [in] VT_I4 IsEnable, [in] VT_R8 CntMax
)
DESCRIPTION¶
cmmCfgSetRingCntr 함수는 링 카운터 기능의 활성/비활성 상태 설정 및 링 카운터 범위를 설정합니다. 해당 모션 축(Axis) 의 Command 또는 Feedback 카운터를 대상으로 링 카운터를 설정합니다.
PARAMETER¶
Axis : 축(채널) 번호. 축 번호는 0 부터 시작합니다.
TargCntr : 링 카운터 기능 대상 카운터를 설정합니다.
value |
Meaning |
---|---|
0 (cmCNT_COMM) |
Command Counter |
1 (cmCNT_FEED) |
Feedback Counter |
IsEnable : cmmCfgSetRingCntr 함수의 인자이며, 링 카운터 기능 활성/비활성 상태를 설정합니다.
value |
Meaning |
---|---|
0 (cmFALSE) |
링 카운터 기능을 사용하지 않습니다. |
1 (cmTRUE) |
링 카운터 기능을 사용합니다. |
CntMax : cmmCfgSetRingCntr 함수의 인자이며, 링 카운터 범위를 설정합니다. 링 카운터 기능이 활성화되면 지정한 카운터는 0~CntMax 사이의 값에서만 카운트 됩니다. 지정하는 카운터 값의 단위는 “Unit distance”에 의해 정의되는 논리적 거리 단위입니다.
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
cmERR_NONE |
수행 성공 |
REFERENCE¶
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 | C/C++
#include “Cmmsdk.h”
#include “CmmsdkDef.h”
long nAxisNo = 1; // 링 카운터 기능을 설정할 축을 선택합니다.
void OnSetRingCounter ()
{
long nIsEnable; // 링 카운터 설정 정보.
double fCntMax;
/* 커맨드 카운터를 대상으로 링카운터 기능을 활성화합니다.
40000 펄스가 되면 커맨드 카운터가 다시 ‘0’부터 카운트 됩니다.*/
cmmCfgSetRingCntr ( nAxisNo, // 대상 축 설정
cmCNT_COMM, // 링 카운터 대상 카운터 설정
cmTRUE, // 링 카운터 기능 활성/비활성 설정
40000 // 링 카운터 범위 설정
);
// 해당 축의 링카운터 설정 상태를 반환합니다.
cmmCfgGetRingCntr ( nAxis, cmCNT_COMM, &nIsEnable, &fCntMax );
}
void OnMove ()
{
/* 링 카운터 범위가 ‘0 ~ 40000’으로 설정되어 있으므로 Command Count 값이 40000 이 되면
자동으로 0 에서 Command Count 를 계수 합니다. */
cmmSxVMoveStart ( nAxisNo,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 27 | Visual Basic
Dim nAxisNo As Long ‘ 링 카운터 기능을 설정할 축을 선택합니다.
nAxisNo = 1
Private Sub OnSetRingCounter ()
Dim nIsEnable As Long ‘ 링 카운터 설정 정보.
Dim fCntMax As Double
‘ 커맨드 카운터를 대상으로 링카운터 기능을 활성화합니다.
‘ 40000 펄스가 되면 커맨드 카운터가 다시 ‘0’부터 카운트 됩니다.
Call cmmCfgSetRingCntr ( nAxisNo, cmCNT_COMM, cmTRUE, 40000 )
‘ 해당 축의 링카운터 설정 상태를 반환합니다.
Call cmmCfgGetRingCntr ( nAxis, cmCNT_COMM, nIsEnable, fCntMax )
End Sub
Private Sub OnMove ()
‘ 링 카운터 범위가 ‘0 ~ 40000’으로 설정되어 있으므로 Command Count 값이 40000 이 되면
‘ 자동으로 0 에서 Command Count 를 계수 합니다.
Call cmmSxVMoveStart ( nAxisNo ,1)
End Sub
|
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 | Delphi
procedure OnSetRingCounter ();
var
nIsEnable : LongInt; // 링 카운터 설정 정보.
fCntMax : Double;
begin
{ 커맨드 카운터를 대상으로 링카운터 기능을 활성화합니다.
40000 펄스가 되면 커맨드 카운터가 다시 ‘0’부터 카운트 됩니다. }
cmmCfgSetRingCntr (cmX1, cmCNT_COMM, cmTRUE, 40000 );
// 해당 축의 링카운터 설정 상태를 반환합니다.
cmmCfgGetRingCntr (cmX1, cmCNT_COMM, @nIsEnable, @fCntMax );
end;
procedure OnMove ();
begin
{ 링 카운터 범위가 ‘0 ~ 40000’으로 설정되어 있으므로 Command Count 값이 40000 이 되면
자동으로 0 에서 Command Count 를 계수 합니다. }
cmmSxVMoveStart (cmX1,1 );
end;
|
See also