cmmCmpTrgContRegTable¶
SYNOPSIS¶
VT_I4 cmmCmpTrgContRegTable(
[in] VT_I4 Axis, [in] VT_PR8 Buffer,
[in] VT_I4 NumData
)
DESCRIPTION¶
연속적인 위치 비교 출력 기능을 사용하기 위해서 임의의 연속적인 위치 데이터를 등록합니다
PARAMETER¶
Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다.
Buffer : 연속적인 위치 데이터를 담고 있는 버퍼(배열). 이 버퍼에 설정되는 위치데이터는 “Unit distance”에 의해
정의되는 논리적 거리 단위를 사용하며, 절대좌표값으로 설정하여야 합니다.
NumData : 버퍼에 담겨있는 위치 데이터의 수
REFERENCE¶
논리적 거리 단위는 cmmCfgSetUnitDist() 함수에 의해 결정됩니다.
이 함수는 위치데이터만 등록하는 것이며 CmpTrgContStart() 함수를 호출해야만 등록한 데이터들이 적용되는 연속적인 위치비교출력 기능이 시작됩니다.
아래의 예제에서는 X 축을 0 에서 50000 좌표로 이동시키면서 Command counter 값이 1000, 5000, 10000, 20000, 30000 이 될 때 각각 트리거 펄스가 출력되도록 하는 예입니다. 따라서 연속적으로 총 5 회의 트리거 펄스가 출력되게 됩니다.
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
cmERR_NONE |
수행 성공 |
EXAMPLE¶
아래의 예제에서는 X 축의 Command(cmCNT_COMM) 위치값이 10000 이 되면 CMP 트리거 펄스를 출력하도록 하는 것입니다. 이때 (+)방향쪽으로 이동시에만 트리거펄스가 출력되고 (-)방향으로 이동할 때는 출력하지 않도록(cmEQ_PDIR) 합니다.
:linenos:
:emphasize-lines: 5
C/C++
double fDataBuf [5]={1000, 5000, 10000, 20000, 30000};
...
cmmCmpTrgSetConfig(cmX1, cmCNT_COMM, cmEQ_PDIR);
// 연속적인 위치데이터 등록 //
cmmCmpTrgContRegTable(cmX1, fDataBuf, 5);
// 연속적인 위치 비교 기능 시작 //
cmmCmpTrgContStart(cmX1);
...
/* X 축을 50000 포인트로 이동한다. 이동하면서 지정한 위치마다 CMP 트리거 펄스가 출력되게 된다. */
cmmSxMoveTo(cmX1, 50000, cmFALSE);
cmmCmpTrgContStop(cmX1) ; // 연속위치비교 기능 종료
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | Visual Basic
Dim fDataBuf(5) As Double
fDataBuf(0) =1000
fDataBuf(1) = 5000
fDataBuf(2) = 10000
fDataBuf(3) = 20000
fDataBuf(4) = 30000
…
Call cmmCmpTrgSetConfig(cmX1, cmCNT_COMM, cmEQ_PDIR)
‘ 연속적인 위치데이터 등록
Call cmmCmpTrgContRegTable(cmX1, fDataBuf, 5)
‘ 연속적인 위치 비교 기능 시작
Call cmmCmpTrgContStart(cmX1)
…
‘ X 축을 50000 포인트로 이동한다. 이동하면서 지정한 위치마다 CMP 트리거 펄스가 출력되게 된다.
Call cmmSxMoveTo(cmX1, 50000, cmFALSE)
Call cmmCmpTrgContStop(cmX1) ‘ 연속위치비교 기능 종료
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | Delphi
Const
fDataBuf : Array[0..4] of Double = (1000,5000,10000,20000,30000);
begin
cmmCmpTrgSetConfig(cmX1, cmCNT_COMM, cmEQ_PDIR);
// 연속적인 위치데이터 등록 //
cmmCmpTrgContRegTable(cmX1,@fDataBuf, 5);
// 연속적인 위치 비교 기능 시작 //
cmmCmpTrgContStart(cmX1);
…
// X 축을 50000 포인트로 이동한다. 이동하면서 지정한 위치마다 CMP 트리거 펄스가 출력되게 된다.
cmmSxMoveTo(cmX1, 50000, cmFALSE);
cmmCmpTrgContStop(cmX1) ; // 연속위치비교 기능 종료
end;
|