cmmCmpTrgHigh_Start


SYNOPSIS

VT_I4 cmmCmpTrgHigh_Start(
    [in] VT_I4 Axis
    )

DESCRIPTION

  • 특정 축의 고속위치비교출력 기능을 시작합니다. 이 함수가 호출된 이후에는 cmmCmpTrgHigh_WriteData() 함수를 통하여 해당 축에 고속위치비교출력 회로모듈을 할당하고, 초기 위치와 트리거 간격을 적절하게 설정하였다면, 모션의 위치가 이송될 때 초기 위치부터 트리거 간격의 위치를 지날 때마다 트리거 신호가 출력됩니다.

PARAMETER

  • Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다.

REFERENCE

  • 고속위치비교출력 기능도 CMP 출력을 사용하므로 카운터소스, 위치비교 방식 등의 설정을 하는 cmmCmpTrgSetConfig() 함수는 일반 위치비교 출력 기능과 마찬가지로 적용됩니다.

  • 출력 펄스의 폭은 cmmCfgSetMioProperty () 함수를 사용하여 설정합니다. 이때 PropID 매개 변수에 cmCMP_PWIDTH 를 지정하고 펄스폭을 설정합니다. cmmCfgSetMioProperty (축번호, cmCMP_PWIDTH, 펄스폭매개 변수) 의 형태로 설정합니다. 펄스폭의 기본 설정은 Command 출력의 한 주기에 해당하는 펄스가 출력되는 것입니다.

Warning

이 함수는 COMI-LX504a 제품에 대해서만 사용 가능한 함수입니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

cmERR_NONE

수행 성공

EXAMPLE

  • 아래의 예제에서는 X 축을 0 에서 50000 좌표로 이동시키면서 피드백 위치가 1000 부터 시작하여 100 의 간격 마다

트리거 신호를 출력하도록 하는 예제입니다. 다시 말해서 피드백 위치가 1000, 1100, 1200, 1300, … 이 될 때마다 트리거 펄스가 출력되도록 하는 예입니다.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
C/C++

#define AXIS 12 // 축번호는 통합 축 번호 사용함을 예시하기 위해서 12 번 축으로 하였으며 다른 뜻은 없음
#define CMPH_No 0 // CMPH_No 는 통합축 번호와 관계없이 해당 축이 속한 장치내에서 제공하는 2 개의 모듈 중에
                 // 하나를 지정해야 한다. 따라서 이 값은 항상 0 또는 1 중의 하나의 값이어야 한다.

   cmmSxMoveTo(AXIS, 0, cmFALSE);

   // 비교기 설정: 이 것은 다른 일반 위치비교출력 기능과 같습니다 //
   cmmCmpTrgSetConfig (AXIS, cmCNT_FEED, cmEQ_BIDIR)

   // AXIS 축에 고속위치비교출력 기능을 할당하고 초기 위치와 간격을 설정한다. //
   cmmCmpTrgHigh_WriteData (AXIS, CMPH_No, 1000, 100);

   // 고속위치비교출력 기능 시작 //
   cmmCmpTrgHigh_Start(AXIS);

   // X 축을 50000 포인트로 이동한다. 이동할 때 피드백 위치가 1000, 1100, 1200,… 일때 트리거 신호 출력됨 //
   cmmSxMoveTo(AXIS, 50000, cmFALSE);
   cmmCmpTrgHigh_Stop(AXIS) ; // 고속위치비교 기능 종료
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
Visual Basic

Const AXIS = 12 ‘축번호는 통합 축 번호 사용함을 예시하기 위해서 12 번 축으로 하였으며 다른 뜻은 없음
Const CMPH_No = 0 ‘ CMPH_No 는 통합축 번호와 관계없이 해당 축이 속한 장치내에서 제공하는 2 개의 모듈 중에
                   ‘ 하나를 지정해야 한다. 따라서 이 값은 항상 0 또는 1 중의 하나의 값이어야 한다.

   Call cmmSxMoveTo(AXIS, 0, cmFALSE)

   ‘ 비교기 설정: 이 것은 다른 일반 위치비교출력 기능과 같습니다.
   Call cmmCmpTrgSetConfig (AXIS, cmCNT_FEED, cmEQ_BIDIR)

   ‘ AXIS 축에 고속위치비교출력 기능을 할당하고 초기 위치와 간격을 설정한다.
   Call cmmCmpTrgHigh_WriteData (AXIS, CMPH_No, 1000, 100)

   ‘ 고속위치비교출력 기능 시작
   Call cmmCmpTrgHigh_Start(AXIS)

   ‘ X 축을 50000 포인트로 이동한다. 이동할 때 피드백 위치가 1000, 1100, 1200,… 일때 트리거 신호 출력됨
   Call cmmSxMoveTo(AXIS, 50000, cmFALSE)
   Call cmmCmpTrgHigh_Stop(AXIS) ‘ 고속위치비교 기능 종료
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
Delphi

Const AXIS = 12; // 축번호는 통합 축 번호 사용함을 예시하기 위해서 12 번 축으로 하였으며 다른 뜻은 없음
Const CMPH_No = 0;// CMPH_No 는 통합축 번호와 관계없이 해당 축이 속한 장치내에서 제공하는 2 개의 모듈 중에
                   // 하나를 지정해야 한다. 따라서 이 값은 항상 0 또는 1 중의 하나의 값이어야 한다.

   cmmSxMoveTo(AXIS, 0, cmFALSE);

   // 비교기 설정: 이 것은 다른 일반 위치비교출력 기능과 같습니다 //
   cmmCmpTrgSetConfig(AXIS, cmCNT_FEED, cmEQ_BIDIR);

   // AXIS 축에 고속위치비교출력 기능을 할당하고 초기 위치와 간격을 설정한다. //
   cmmCmpTrgHigh_WriteData(AXIS, CMPH_No, 1000, 100);

   // 고속위치비교출력 기능 시작 //
   cmmCmpTrgHigh_Start(AXIS);

   // X 축을 50000 포인트로 이동한다. 이동할 때 피드백 위치가 1000, 1100, 1200,… 일때 트리거 신호 출력됨 //
   cmmSxMoveTo(AXIS, 50000, cmFALSE);
   cmmCmpTrgHigh_Stop(AXIS) ; // 고속위치비교 기능 종료