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) ; // 고속위치비교 기능 종료
|