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;