2D 테이블 트리거 관련 함수
1. SIO-HPC4 제품 스펙 정보
Feature
- Count/Trigger channel count: 4
- MAX counter rate : 8 Mcount/Sec
- Trigger operation rate : Max 8 Mcount/Sec
- Trigger pulse width range : 40nSec ~ 85 mSec
- Position range : -2147483648 ~ 2147483647 (32bit signed counter)
- RAM Data trigger function
-. RAM DATA Trigger position range : 4,194,304(17bit address * 5bit width)
-. RAM DATA Trigger position range : 4,194,304(17bit address * 5bit width)
-. Trigger operation rate : Max 2 Mcount/Sec - Periodic distance trigger function: Direction valid function included
- Absolute position Trigger function: 64-Depth position list Queue
- Timer mode Trigger function
Terminal pin map
아래 표 삽입 여부 판단 필요 (프로텍 HPC4에 있는 자료라...)
2. 함수 정보
설정 관련 함수는 프로그램 초기화 단계에서 1번만 호출하여도 무방하다.
Position 비교 Trigger 출력 관련 설정 함수
Function | Description |
---|---|
AxcTableSetTriggerLevel | 지정한 모듈의 2D 테이블 트리거에 할당된 출력 신호의 Active 레벨을 설정한다. |
AxcTableGetTriggerLevel | 지정한 모듈의 2D 테이블 트리거에 설정된 출력 신호의 Active 레벨을 확인한다. |
AxcTableSetTriggerTime | 지정한 모듈의 2D 테이블 트리거에 할당된 출력 신호의 펄스 폭을 설정한다. |
AxcTableGetTriggerTime | 지정한 모듈의 2D 테이블 트리거에 설정된 출력 신호의 펄스 폭을 확인한다. |
AxcTableSetEncoderInput | 지정한 모듈의 2D 테이블 트리거에 입력으로 사용할 엔코더 신호을 지정한다. |
AxcTableGetEncoderInput | 지정한 모듈의 2D 테이블 트리거에 입력으로 사용할 엔코더 신호 설정을 확인한다. |
AxcTableSetTriggerOutport | 지정한 모듈의 2D 테이블 트리거 출력 기능에 의해 출력 할 출력포트를 선택한다. |
AxcTableGetTriggerOutport | 지정한 모듈의 2D 테이블 트리거 출력 기능에 의해 출력 할 출력포트 선택을 확인한다. |
AxcTableSetErrorRange | 지정한 모듈의 2D 테이블 트리거에 설정된 트리거 위치의 허용 오차 범위를 설정한다. |
AxcTableGetErrorRange | 지정한 모듈의 2D 테이블 트리거에 설정된 트리거 위치의 허용 오차 범위를 확인한다. |
AxcTableTriggerOneShot | 지정한 모듈의 2D 테이블 트리거에 설정된 트리거 출력포트에 지정한 방법으로 트리거 출력 신호를 1회 출력한다. |
AxcTableTriggerPatternShot | 지정한 모듈의 2D 테이블 트리거에 설정된 트리거 출력포트에 지정한 간격과 펄스 폭의 신호로 설정한 횟수의 패턴 펄스를 출력한다. |
AxcTableGetPatternShotData | 지정한 모듈의 2D 테이블 트리거에 설정된 패턴 트리거 데이터를 확인한다. |
AxcTableSetTriggerMode | 지정한 모듈의 2D 테이블 트리거에 원하는 형태의 트리거 출력 방식을 설정한다. |
AxcTableGetTriggerMode | 지정한 모듈의 2D 테이블 트리거에 설정된 트리거 출력 방식을 확인한다. |
AxcTableSetTriggerCountClear | 지정한 모듈의 2D 테이블 트리거에 출력된 누적 트리거 개수를 초기화 한다. |
AxcTableSetTriggerData | 지정한 모듈의 2D 테이블 트리거에 트리거 신호를 출력하기 위해 필요한 데이터를 각각의 Array로 설정한다. |
AxcTableGetTriggerData | 지정한 모듈의 2D 테이블 트리거에 트리거 신호를 출력하기 위해 필요한 데이터 설정값을 확인한다. |
AxcTableSetTriggerDataEx | 지정한 모듈의 2D 테이블 트리거에 트리거 신호를 출력하기 위해 필요한 데이터를 하나의 Array로 설정한다. |
AxcTableGetTriggerDataEx | 지정한 모듈의 2D 테이블 트리거에 설정된 데이터를 하나의 Array로 확인한다. |
AxcTableSetTriggerDataClear | 지정한 모듈의 2D 테이블 트리거에 설정된 모든 데이터를 모두 삭제한다. |
AxcTableSetEnable | 지정한 모듈의 2D 트리거 기능을 사용 또는 비사용으로 설정한다. |
AxcTableGetEnable | 지정한 모듈의 2D 트리거 기능 사용여부를 확인한다. |
AxcTableReadTriggerCount | 지정한 모듈의 2D 테이블 트리거를 이용해 발생된 트리거 개수를 확인한다. |
AxcTableReadFifoStatus | 지정한 모듈의 2D 테이블 트리거에 할당된 H/W 트리거 데이터 FIFO 의 상태를 확인한다. |
AxcTableReadFifoData | 지정한 모듈의 2D 테이블 트리거에 할당된 H/W 트리거 데이터 FIFO 의 현재 위치 데이터 값을 확인한다 |
AxcTableSetTriggerLevel
Purpose
지정한 모듈의 2D 테이블 트리거에 할당된 출력 신호의 Active 레벨을 설정한다.
Format
C++
DWORD AxcTableSetTriggerLevel(long lModuleNo, long lTablePos, DWORD uLevel);
C#
uint AxcTableSetTriggerLevel(int lModuleNo, int lTablePos, uint uLevel);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[in]uLevel | 출력 신호의 Active Level 설정 - [0] 트리거 출력 시 ‘Low’ 레벨 출력 - [1] 트리거 출력 시 ‘High’ 레벨 출력 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력 기능에 할당된 트리거 출력 포트들의 Active Level을 설정한다.
AxcTableSetTriggerOutport 함수를 이용해 설정한 출력 포트들은 모두 적용된다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거에 출력포트 0, 1을 설정
AxcTableSetTriggerOutport(0, 0, 0x3);
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력 레벨을 ‘High’로 설정
AxcTableSetTriggerLevel(0, 0, 1);
AxcTableGetTriggerLevel
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 출력 신호의 Active 레벨을 확인한다.
Format
C++
DWORD AxcTableGetTriggerLevel(long lModule, long lTablePos, DWORD* upLevel);
C#
uint AxcTableGetTriggerLevel(int lModule, int lTablePos, ref uint upLevel);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[out]upLevel | 출력 신호의 Active Level 설정값 - [0] 트리거 출력 시 ‘Low’ 레벨 출력 - [1] 트리거 출력 시 ‘High’ 레벨 출력 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력 기능에 할당된 트리거 출력 포트들의 Active Level을 확인한다.
AxcTableSetTriggerOutport 함수를 이용해 설정한 출력 포트들의 Active Level을 의미한다.
예제 코드
DWORD uLevel;
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력 레벨을 확인
AxcTableGetTriggerLevel(0, 0, & uLevel);
AxcTableSetTriggerTime
Purpose
지정한 모듈의 2D 테이블 트리거에 할당된 출력 신호의 펄스 폭을 설정한다.
Format
C++
DWORD AxcTableSetTriggerTime(long lModuleNo, long lTablePos, double dTriggerTimeUSec);
C#
uint AxcTableSetTriggerTime(int lModuleNo, int lTablePos, double dTriggerTimeUSec);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 값 |
[in]dTriggerTimeUSec | 트리거 출력 펄스 폭을 us단위로 설정 - 0.2 ~ 42949672.95 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력기능에 할당된 트리거 출력 포트들에 출력될 펄스의 신호 폭을 설정한다.
AxcTableSetTriggerOutport 함수를 이용해 설정한 출력 포트들은 모두 적용된다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거에 출력포트 0, 1을 설정
AxcTableSetTriggerOutport(0, 0, 0x3);
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력 펄스폭을 1ms로 설정
AxcTableSetTriggerTime(0, 0, 1000.0);
AxcTableGetTriggerTime
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 출력 신호의 펄스 폭을 확인한다.
Format
C++
DWORD AxcTableGetTriggerTime(long lModuleNo, long lTablePos, double* dpTriggerTimeUSec);
C#
uint AxcTableGetTriggerTime(int lModuleNo, int lTablePos, ref double dpTriggerTimeUSec);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 값 |
[out]dTriggerTimeUSec | 트리거 출력 펄스 폭을 us단위로 설정 - 0.2 ~ 42949672.95 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력기능에 할당된 트리거 출력 포트들에 트리거 발생시 출력될 펄스의 신호 폭을 확인한다.
예제 코드
double dTriggerTimeUSec;
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력 펄스폭을 확인
AxcTableGetTriggerTime(0, 0, &dTriggerTimeUSec);
AxcTableSetEncoderInput
Purpose
지정한 모듈의 2D 테이블 트리거에 입력으로 사용할 엔코더 신호을 지정한다.
Format
C++
DWORD AxcTableSetEncoderInput(long lModuleNo, long lTablePos, DWORD uEncoderInput1, DWORD uEncoderInput2);
C#
uint AxcTableSetEncoderInput(int lModuleNo, int lTablePos, uint uEncoderInput1, uint uEncoderInput2);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[in] uEncoderInput1 | 2D 테이블의 첫번째 엔코더 입력 - [0] 1번 엔코더 입력 - [1] 2번 엔코더 입력 - [2] 3번 엔코더 입력 - [3] 4번 엔코더 입력 |
[in] uEncoderInput2 | 2D 테이블의 두번째 엔코더 입력 - [0] 1번 엔코더 입력 - [1] 2번 엔코더 입력 - [2] 3번 엔코더 입력 - [3] 4번 엔코더 입력 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력기능에 설정된 위치 데이터와 비교 할 2개의 엔코더 입력을 설정한다.
지정한 모듈이 제공하는 엔코더 번호를 각각 지정하며 EncoderInput1과 EncoderInput2를 같은 엔코더로 지정하면 1D 트리거로 사용할 수 있다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거의 엔코더 입력으로 첫번째 두번째 엔코더로 설정
AxcTableSetEncoderInput(0, 0, 0, 1);
// 0번 모듈의 1번 2D 테이블 트리거의 엔코더 입력으로 세번째 네번째 엔코더로 설정
AxcTableSetEncoderInput(0, 1, 2, 3);
AxcTableGetEncoderInput
Purpose
지정한 모듈의 2D 테이블 트리거에 입력으로 사용할 엔코더 신호 설정을 확인한다.
Format
C++
DWORD AxcTableGetEncoderInput(long lModuleNo, long lTablePos, DWORD* upEncoderInput1, DWORD* upEncoderInput2);
C#
uint AxcTableGetEncoderInput(int lModuleNo, int lTablePos, ref uint upEncoderInput1, ref uint upEncoderInput2);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[out] uEncoderInput1 | 2D 테이블의 첫번째 엔코더 입력 확인 - [0] 1번 엔코더 입력 - [1] 2번 엔코더 입력 - [2] 3번 엔코더 입력 - [3] 4번 엔코더 입력 |
[out] uEncoderInput2 | 2D 테이블의 두번째 엔코더 입력 확인 - [0] 1번 엔코더 입력 - [1] 2번 엔코더 입력 - [2] 3번 엔코더 입력 - [3] 4번 엔코더 입력 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력기능에 설정된 위치데이터와 비교 할 2개의 엔코더 입력 설정을 확인한다.
예제 코드
DWORD uEncoderInput1, uEncoderInput2;
// 0번 모듈의 0번 2D 테이블 트리거의 엔코더 입력1, 2의 설정을 확인
AxcTableGetEncoderInput(0, 0, & uEncoderInput1, & uEncoderInput2);
AxcTableSetTriggerOutport
Purpose
지정한 모듈의 2D 테이블 트리거 출력 기능에 의해 출력 할 출력포트를 선택한다.
Format
C++
DWORD AxcTableSetTriggerOutport(long lModuleNo, long lTablePos, DWORD uTriggerOutport);
C#
uint AxcTableSetTriggerOutport(int lModuleNo, int lTablePos, uint uTriggerOutport);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[in] uTriggerOutport | 2D 테이블 트리거 출력기능으로 출력할 출력포트를 선택[0x0 ~ 0xF] - Bit 0: 트리거 출력 0 - Bit 1: 트리거 출력 1 - Bit 2: 트리거 출력 2 - Bit 3: 트리거 출력 3 Ex) 0x3 -> 트리거 출력 0, 1에 출력 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력기능으로 출력될 출력포트들을 선택한다.
트리거 출력을 여러 개의 입력 장치에 사용할 때 여러 개의 트리거 출력에 출력되도록 설정할 수 있다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력을 0번 트리거 출력에 출력되도록 설정
AxcTableSetTriggerOutport(0, 0, 0, 0x1);
// 0번 모듈의 1번 2D 테이블 트리거의 트리거 출력을 1번, 2번 트리거 출력에 출력되록 설정
AxcTableSetTriggerOutport(0, 1, 0x6);
AxcTableGetTriggerOutport
Purpose
지정한 모듈의 2D 테이블 트리거 출력 기능에 의해 출력 할 출력포트 선택을 확인한다.
Format
C++
DWORD AxcTableGetTriggerOutport(long lModuleNo, long lTablePos, DWORD* upTriggerOutport);
C#
uint AxcTableGetTriggerOutport(int lModuleNo, int lTablePos, ref uint upTriggerOutport);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[out] uTriggerOutport | 2D 테이블 트리거 출력기능으로 출력할 출력포트를 확인[0x0 ~ 0xF] - Bit 0: 트리거 출력 0 - Bit 1: 트리거 출력 1 - Bit 2: 트리거 출력 2 - Bit 3: 트리거 출력 3 Ex) 0x3 -> 트리거 출력 0, 1에 출력 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력기능으로 선택된 출력포트들을 확인한다.
예제 코드
DWORD uTriggerOutport;
// 0번 모듈의 0번 2D 테이블 트리거에 선택된 출력포트 설정을 확인
AxcTableGetTriggerOutport(0, 0, &uTriggerOutport);
AxcTableSetErrorRange
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 트리거 위치의 허용 오차 범위를 설정한다.
Format
C++
DWORD AxcTableSetErrorRange(long lModuleNo, long lTablePos, double dErrorRange);
C#
uint AxcTableSetErrorRange(int lModuleNo, int lTablePos, double dErrorRange);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[in]dErrorRange | 트리거 위치에 대한 허용 범위를 지정한 단위로 설정 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블에 등록한 X, Y 트리거 출력 위치의 허용 범위를 AxcMotSetMoveUnitPerPulse 함수로 지정한 단위로 설정한다. 2D트리거 시스템이 허용하는 오차를 감안하여 적절한 에러값을 설정하여 사용한다. 허용 에러 범위가 적을 경우 기구의 상태나 서보 튜닝 상태에 따라 트리거가 출력되지않을 수 있으므로 주의가 필요하다.
예제 코드
// 제어 단위를 mm로 설정했을 경우
// 0번 모듈의 0번 2D 테이블 트리거에 각 위치별 허용에러 범위를 30um으로 설정
AxcTableSetErrorRange(0, 0, 0.03);
AxcTableGetErrorRange
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 트리거 위치의 허용 오차 범위를 확인한다.
Format
C++
DWORD AxcTableGetErrorRange(long lModuleNo, long lTablePos, double* dpErrorRange);
C#
uint AxcTableGetErrorRang(int lModuleNo, int lTablePos, ref double dpErrorRange);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[out]dErrorRange | 트리거 위치에 대한 허용 범위를 확인 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블에 등록한 X, Y 트리거 출력 위치의 허용 범위 설정값을 확인한다.
예제 코드
// 제어 단위를 mm로 설정했을 경우
// 0번 모듈의 0번 2D 테이블 트리거에 각 위치별 허용에러 범위를 30um으로 설정
AxcTableSetErrorRange(0, 0, 0.03);
AxcTableTriggerOneShot
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 트리거 출력포트에 지정한 방법으로 트리거 출력 신호를 1회 출력한다
Format
C++
DWORD AxcTableTriggerOneShot(long lModuleNo, long lTablePos);
C#
uint AxcTableTriggerOneShot(int lModuleNo, int lTablePos);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거에 설정된 트리거 출력포트, 펄스폭으로 트리거 1개를 발생시킨다.
만약 트리거 기능 사용하지 않음으로 설정되어 있을 경우 트리거 발생을 위해 자동으로 RANGE_TRIGGER로 변경하여 트리거를 발생시킨다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력을 0번 트리거 출력에 출력되도록 설정
AxcTableSetTriggerOutport(0, 0, 0, 0x1);
// 0번 모듈의 0번 2D 테이블 트리거에 출력포트 0, 1을 설정
AxcTableSetTriggerTime(0, 0, 1000.0);
// 0번 모듈의 0번 2D 테이블 트리거에 1펄스 트리거를 출력함
AxcTableTriggerOnShot(0, 0);
AxcTableTriggerPatternShot
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 트리거 출력포트에 지정한 간격과 펄스 폭의 신호로 설정한 횟수의 패턴 펄스를 출력한다.
Format
C++
DWORD AxcTableTriggerPatternShot(long lModuleNo, long lTablePos, long lTriggerCount, DWORD uTriggerFrequency);
C#
uint AxcTableTriggerPatternShot(int lModuleNo, int lTablePos, int lTriggerCount, uint uTriggerFrequency);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[in]lTriggerCount | 지정한 주파수를 유지하며 출력할 트리거 개수[1 ~ 2,147,483,648] |
[in]uTriggerFrequency | 패턴 트리거를 발생시킬 주파수[1Hz~500,000Hz] |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거에 선택된 출력포트로 지정한 펄스폭과 주파수로 설정한 트리거 개수만큼 트리거를 발생시킨다. 만약 트리거 모드가 PATTERN_TRIGGER 모드가 아닐경우 패턴 트리거 발생을 위해 자동으로 PATTERN _TRIGGER로 변경하여 트리거를 발생시킨다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력을 0번 트리거 출력에 출력되도록 설정
AxcTableSetTriggerOutport(0, 0, 0, 0x1);
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력 펄스폭을 1ms로 설정
AxcTableSetTriggerTime(0, 0, 1000.0);
// 0번 모듈의 0번 2D 테이블 트리거에 100Hz의 속도로 10개의 트리거를 출력함
AxcTagleTriggerPatternShot(0, 0, 100, 10);
AxcTableGetPatternShotData
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 패턴 트리거 데이터를 확인한다.
Format
C++
DWORD AxcTableGetPatternShotData(long lModuleNo, long lTablePos, long* lpTriggerCount, DWORD* upTriggerFrequency);
C#
uint AxcTableGetPatternShotData(int lModuleNo, int lTablePos, ref uint lpTriggerCount, ref uint upTriggerFrequency);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[out]lpTriggerCount | 지정한 주파수를 유지하며 출력할 트리거 개수[1 ~ 2,147,483,648] |
[out]upTriggerFrequency | 패턴 트리거를 발생시킬 주파수[1Hz~500,000Hz] |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거에 설정된 패턴트리거 데이터를 확인한다.
예제 코드
long lpTriggerCount;
DWORD* upTriggerFrequency;
// 0번 모듈의 0번 2D 테이블 트리거의 패턴트리거 설정값을 확인
AxcTableGetPatternShotData(0, 0, &lpTriggerCount, &upTriggerFrequency);
AxcTableSetTriggerMode
Purpose
지정한 모듈의 2D 테이블 트리거에 원하는 형태의 트리거 출력 방식을 설정한다.
Format
C++
DWORD AxcTableSetTriggerMode(long lModuleNo, long lTablePos, DWORD uTrigMode);
C#
uint AxcTableSetTriggerMode(int lModuleNo, int lTablePos, uint uTrigMode);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[in] uTrigMode | 트리거 출력 방식을 설정(0~5) - [0] 지정한 트리거 위치에 설정한 허용 범위안에 위치할 때 출력 - [1] 지정한 트리거 위치에 설정한 허용 범위안에서 벡터 방향이 일치할 때 출력 - [2] 지정한 트리거 위치에 설정한 허용 범위안에 위치할 때 등간격으로 출력 - [3] 위치와 무관하게 지정한 개수만큼 설정한 주파수로 출력 - [4] 지정한 트리거 위치의 홀수번째 위치에서 트리거 출력이 시작되고 짝수번째 위치에서 출력 OFF됨 - [5] 지정한 Low 위치부터 Upper위치까지 트리거 출력을 유지 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력 모드를 확인한다. 2D 테이블 트리거 출력 기능을 사용하면 트리거 모드는 각 트리거 명령에 맞는 (OneShot 명령이나 PatternShot 명령 등) 모드로 자동 변경된다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거 모드를 허용범위안에서 벡터 방향이 일치할 때 출력으로 설정
AxcTableSetTriggerMode(0, 0, 1);
AxcTableGetTriggerMode
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 트리거 출력 방식을 확인한다.
Format
C++
DWORD AxcTableGetTriggerMode(long lModule, long lTablePos, DWORD* upTrigMode);
C#
uint AxcTableGetTriggerMode(int lModule, int lTablePos, ref uint upTrigMode);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[out] uTrigMode | 트리거 출력 방식을 확인(0~5) - [0] 지정한 트리거 위치에 설정한 허용 범위안에 위치할 때 출력 - [1] 지정한 트리거 위치에 설정한 허용 범위안에서 벡터 방향이 일치할 때 출력 - [2] 지정한 트리거 위치에 설정한 허용 범위안에 위치할 때 등간격으로 출력 - [3] 위치와 무관하게 지정한 개수만큼 설정한 주파수로 출력 - [4] 지정한 트리거 위치의 홀수번째 위치에서 트리거 출력이 시작되고 짝수번째 위치에서 출력 OFF됨 - [5] 지정한 Low 위치부터 Upper위치까지 트리거 출력을 유지 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력 모드를 확인한다. 2D 테이블 트리거 출력 기능을 사용하면 트리거 모드는 각 트리거 명령에 맞는 (OneShot 명령이나 PatternShot 명령 등) 모드로 자동 변경된다.
예제 코드
DWORD uTrigMode;
// 0번 모듈의 0번 2D 테이블 트리거의 트리거 출력 모드 설정을 확인
AxcTableGetTriggerMode(0, 0, &uTrigMode);
AxcTableSetTriggerCountClear
Purpose
지정한 모듈의 2D 테이블 트리거에 출력된 누적 트리거 개수를 초기화 한다.
Format
C++
DWORD AxcTableSetTriggerCountClear (long lModuleNo, long lTablePos);
C#
uint AxcTableSetTriggerCountClear (int lModuleNo, int lTablePos);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거에의해 출력된 누적 트리거 개수를 초기화 한다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거 카운터 초기화
AxcTableSetTriggerCountClear(0, 0);
AxcTableSetTriggerData
Purpose
지정한 모듈의 2D 테이블 트리거에 트리거 신호를 출력하기 위해 필요한 데이터를 각각의 Array로 설정한다.
Format
C++
DWORD AxcTableSetTriggerData(long lModuleNo, long lTablePos, long lTriggerDataCount, double* dpTriggerData, long* lpTriggerCount, double* dpTriggerInterval);
C#
uint AxcTableSetTriggerData(int lModuleNo, int lTablePos, int lTriggerDataCount, double[] dpTriggerData, int[] lpTriggerCount, double[] dpTriggerInterval);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[in] lTriggerDataCount | 설정할 트리거 정보의 전체 개수 - [-1 or 0] 등록된 트리거 정보의 데이터가 모두 초기화됨 |
[in] dpTriggerData | 2D 절대위치 트리거 정보 - 해당 배열의 개수는 lTriggerDataCount * 2 - Ex) [0] X1 위치, [1] Y1 위치, [2] X2 위치, [3] Y2 위치 |
[in] lpTriggerCount | 입력한 2D 절대 트리거 위치에서 트리거 조건 만족 시 발생시킬 트리거 갯수를 배열로 설정 - 해당 배열의 개수는 lTriggerDataCount와 동일함 |
[in] dpTriggerInterval | TriggerDataCount만큼 연속해서 트리거를 발생시킬때 유지 할 간격을 주파수 단위로 설정 - 해당 배열의 개수는 lTriggerDataCount와 동일함 |
주의점) 각 전달인자의 배열 개수가 적은 배열을 지정하면 메모리 참조 오류가 발생될 수 있음 Trigger Mode는 HPC4_RANGE_TRIGGER 로 자동 변경됨 함수 내부에서 Trigger 를 Disable 한 후 모든 설정을 진행하며 완료 후 다시 Enable 됨
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
[3302] AXT_RT_CNT_INVALID_CHANNEL_NO : 유효하지 않은 CNT 채널 번호
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 CNT 모듈
Description
지정 CNT 모듈의 2D 테이블에 트리거를 발생시킬 X, Y위치들과 해당 위치에서 출력할 펄스 수, 간격들을 각각의 배열에 설정하여 한꺼번에 2D 테이블에 등록한다. dpTriggerData 배열에는 하나의 트리거에 대해 X위치와, Y위치를 같이 설정해야되므로 발생시킬 트리거 개수의 두배의 크기로 지정해야되므로 주의해야된다.
예제 코드
// 트리거 위치 3개 설정 [100, 100] [150, 200] [200, 300]
// 위치별 트리거 카운터 [0] [0] [3]
// 위치별 트리거 발생 주파수[0] [0] [100.0]
long lTriggerDataCount = 3;
double* dpTriggerData;
long* lpTriggerCount;
double* dpTriggerInterval;
dpTriggerData = new double[lTriggerDataCount * 2];
lpTriggerCount = new long[lTriggerDataCount];
dpTriggerInterval = new double[lTriggerDataCount];
dpTriggerData[0] = 100.0; dpTriggerData[1] = 100.0;
dpTriggerData[2] = 150.0; dpTriggerData[3] = 200.0;
dpTriggerData[4] = 200.0; dpTriggerData[5] = 300.0;
// 첫번째 두번째 위치에서 트리거 1개 발생, 세번째 위치에서 트리거 3개 발생
lpTriggerCount[0] = 1;
lpTriggerCount[1] = 1;
lpTriggerCount[2] = 3;
// 세번째 트리거 위치에서 3개의 트리거를 100Hz 간격으로 발생시킴
dpTriggerInterval[0] = 0;
dpTriggerInterval[1] = 0;
dpTriggerInterval[2] = 100;
AxcTableSetTriggerData(0, 0, dpTriggerData, lpTriggerCount, dpTriggerInterval);
// 할당 메모리 해제
delete[] dpTriggerData;
delete[] lpTriggerCount;
delete[] dpTriggerInterval;
AxcTableGetTriggerData
Purpose
지정한 모듈의 2D 테이블 트리거에 트리거 신호를 출력하기 위해 필요한 데이터 설정값을 확인한다.
Format
C++
DWORD AxcTableGetTriggerData(long lModuleNo, long lTablePos, long* lpTriggerDataCount, double* dpTriggerData, long* lpTriggerCount, double* dpTriggerInterval);
C#
uint AxcTableGetTriggerData(int lModuleNo, int lTablePos, ref int lpTriggerDataCount, ref double dpTriggerData, ref int lpTriggerCount, ref double dpTriggerInterval);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[out] lTriggerDataCount | 설정할 트리거 정보의 전체 개수 - [-1 or 0] 등록된 트리거 정보의 데이터가 모두 초기화됨 |
[out] dpTriggerData | 2D 절대위치 트리거 정보 - 해당 배열의 개수는 lTriggerDataCount * 2 - Ex) [0] X1 위치, [1] Y1 위치, [2] X2 위치, [3] Y2 위치 |
[out] lpTriggerCount | 입력한 2D 절대 트리거 위치에서 트리거 조건 만족 시 발생시킬 트리거 갯수를 배열로 설정 - 해당 배열의 개수는 lTriggerDataCount와 동일함 |
[out] dpTriggerInterval | TriggerDataCount만큼 연속해서 트리거를 발생시킬때 유지 할 간격을 주파수 단위로 설정 - 해당 배열의 개수는 lTriggerDataCount와 동일함 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블에 설정된 X, Y위치들과 해당 위치에서 출력할 펄스 수, 간격들을 각각의 배열을 통해 확인한다. 이때 배열의 개수를 알기 위해서 AxcTableGetTriggerData(0, 0, &lTriggerDataCount, NULL, NULL, NULL)와 같이 TriggerDataCount 값만 확인 한 후 배열을 생성하여 확인할 수 있다.
예제 코드
long lTriggerDataCount;
double* dpTriggerData;
long* lpTriggerCount;
double* dpTriggerInterval;
AxcTableGetTriggerData(0, 0, &lTriggerDataCount, NULL, NULL, NULL);
if(lTriggerDataCount > 0)
{
dpTriggerData = new double[lTriggerDataCount * 2];
lpTriggerCount = new long[lTriggerDataCount];
dpTriggerInterval = new double[lTriggerDataCount];
AxcTableGetTriggerData (0, 0, NULL, dpTriggerData, lpTriggerCount, dpTriggerInterval);
// 할당 메모리 해제
delete[] dpTriggerData;
delete[] lpTriggerCount;
delete[] dpTriggerInterval;
}
AxcTableSetTriggerDataEx
Purpose
지정한 모듈의 2D 테이블 트리거에 트리거 신호를 출력하기 위해 필요한 데이터를 하나의 Array로 설정한다.
Format
C++
DWORD AxcTableSetTriggerDataEx(long lModuleNo, long lTablePos, long lTriggerDataCount, DWORD uOption, double* dpTriggerData);
C#
uint AxcTableSetTriggerDataEx(int lModuleNo, int lTablePos, int lTriggerDataCount, uint uOption, ref double dpTriggerData);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[in] lTriggerDataCount | 설정할 트리거 정보의 전체 개수 - [-1 or 0] 등록된 트리거 정보의 데이터가 모두 초기화됨 |
[in] uOption | 2D 트리거 데이터 입력방식을 지정 - [0] 트리거 위치에서 1개의 트리거만 출력 - [1] 트리거 위치에서 지정한 회수와 주파수로 출력 |
[in] dpTriggerData | 2D 절대위치 트리거 관련 정보를 설정(Option에 따라 다름) [Option = 0] - 2D 절대위치 데이터만 지정, 배열개수 -> lTriggerDataCount * 2 - Ex) [0] X1 위치, [1] Y1 위치, [2] X2 위치, [3] Y2 위치, …(반복) [Option = 1] - 2D 절대위치 데이터, Count, 주파수순 -> lTriggerDataCount * 4 - Ex) [0] X1 위치, {1} Y1 위치, [2] Count, [3] Frequency, …(반복) |
주의점) 배열 개수는 Option 에 따라 달라지므로 주의
Trigger Mode 는 HPC4_RANGE_TRIGGER 로 자동 변경됨
함수 내부에서 Trigger 를 Disable 한 후 모든 설정을 진행하며 완료 후 다시 Enable 됨
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블에 트리거를 발생시킬 X, Y위치들과 해당 위치에서 출력할 펄스 수, 간격등을 하나의 배열에 설정하여 한꺼번에 2D 테이블에 등록한다. dpTriggerData 배열은 Option이 0일때는 지정한 위치에서 1개의 트리거만 발생시고 Option이 1일 때 지정한 위치에서 설정한 개수의 트리거를 설정한 주파수로 출력한다.
예제 코드
// Option이 0일 때
// 트리거 위치 3개 설정 [100, 100] [150, 200] [200, 300]
long lTriggerDataCount = 3;
double* dpTriggerData;
dpTriggerData = new double[lTriggerDataCount * 2];
dpTriggerData[0] = 100.0; dpTriggerData[1] = 100.0;
dpTriggerData[2] = 150.0; dpTriggerData[3] = 200.0;
dpTriggerData[4] = 200.0; dpTriggerData[5] = 300.0;
AxcTableSetTriggerDataEx(0, 0, lTriggerDataCount, dpTriggerData);
// 할당 메모리 해제
delete[] dpTriggerData;
// Option이 1일 때
// 트리거 위치 3개 설정 [100, 100] [150, 200] [200, 300]
// 첫번째 두번째 위치에서 트리거 1개 발생, 세번째 위치에서 트리거 3개 발생
// 세번째 트리거 위치에서 3개의 트리거를 100Hz 간격으로 발생시킴
dpTriggerData = new double[lTriggerDataCount * 4];
dpTriggerData[0] = 100.0; dpTriggerData[1] = 100.0; dpTriggerData[2] = 0; dpTriggerData[3] = 0;
dpTriggerData[4] = 150.0; dpTriggerData[5] = 200.0; dpTriggerData[6] = 0; dpTriggerData[7] = 0;
dpTriggerData[8] = 200.0; dpTriggerData[9] = 300.0; dpTriggerData[10] = 3; dpTriggerData[11] = 100;
AxcTableSetTriggerDataEx(0, 0, lTriggerDataCount, dpTriggerData);
// 할당 메모리 해제
delete[] dpTriggerData;
AxcTableGetTriggerDataEx
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 데이터를 하나의 Array로 확인한다
Format
C++
DWORD AxcTableGetTriggerDataEx(long lModuleNo, long lTablePos, long* lpTriggerDataCount, DWORD* upOption, double* dpTriggerData);
C#
uint AxcTableGetTriggerDataEx(int lModuleNo, int lTablePos, ref int lpTriggerDataCount, ref uint upOption, ref double dpTriggerData);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in] lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 모듈 개수 |
[in] lTablePos | 테이블 위치 (0 ~ 3) |
[out] lTriggerDataCount | 설정할 트리거 정보의 전체 개수 - [-1 or 0] 등록된 트리거 정보의 데이터가 모두 초기화됨 |
[out] uOption | 2D 트리거 데이터 입력방식을 지정 - [0] 트리거 위치에서 1개의 트리거만 출력 - [1] 트리거 위치에서 지정한 회수와 주파수로 출력 |
[out] dpTriggerData | 2D 절대위치 트리거 관련 정보를 설정(Option에 따라 다름) [Option = 0] - 2D 절대위치 데이터만 지정, 배열개수 -> lTriggerDataCount * 2 - Ex) [0] X1 위치, [1] Y1 위치, [2] X2 위치, [3] Y2 위치, …(반복) [Option = 1] - 2D 절대위치 데이터, Count, 주파수순 -> lTriggerDataCount * 4 - Ex) [0] X1 위치, {1} Y1 위치, [2] Count, [3] Frequency, …(반복) |
주의점) 배열 개수는 Option 에 따라 달라지므로 주의
Trigger Mode 는 HPC4_RANGE_TRIGGER 로 자동 변경됨
함수 내부에서 Trigger 를 Disable 한 후 모든 설정을 진행하며 완료 후 다시 Enable 됨
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블에 설정된 X, Y위치들과 해당 위치에서 출력할 펄스 수, 간격들을 하나의 배열을 통해 확인한다. 이때 배열의 개수를 알기 위해서 AxcTableGetTriggerDataEx(0, 0, &lTriggerDataCount, &uOption, NULL)와 같이 TriggerDataCount 값과 Option값을 먼저 확인 한 후 배열을 생성하여 확인할 수 있다.
예제 코드
long lTriggerDataCount;
DWORD uOption;
double* dpTriggerData;
AxcTableGetTriggerDataEx(0, 0, &lTriggerDataCount, &uOption, NULL);
if(lTriggerDataCount > 0)
{
if(uOption == 0)
{
dpTriggerData = new double[lTriggerDataCount * 2]];
AxcTableGetTriggerDataEx(0, 0, NULL, NULL, dpTriggerData);
}
else
{
dpTriggerData = new double[lTriggerDataCount * 4]];
AxcTableGetTriggerDataEx(0, 0, NULL, NULL, dpTriggerData);
}
// 할당 메모리 해제
delete[] dpTriggerData;
}
AxcTableSetTriggerDataClear
Purpose
지정한 모듈의 2D 테이블 트리거에 설정된 모든 데이터를 모두 삭제한다.
Format
C++
DWORD AxcTableSetTriggerDataClear(long lModuleNo, long lTablePos);
C#
uint AxcTableSetTriggerDataClear(int lModuleNo, int lTablePos);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거에 설정된 모든 트리거 데이터와 H/W FIFO의 데이터를 모두 삭제한다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거에 설정된 데이터 초기화
AxcTableSetTriggerDataClear(0, 0);
AxcTableSetEnable
Purpose
지정한 모듈의 2D 트리거 기능을 사용 또는 비사용으로 설정한다.
Format
C++
DWORD AxcTableSetEnable(long lModuleNo, long lTablePos, DWORD uEnable);
C#
uint AxcTableSetEnable(int lModuleNo, int lTablePos, uint uEnable);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[in]uEnable | 2D 트리거 기능 사용여부를 설정함 - [0] 2D 트리거 출력 기능 사용안함 - [1] 2D 트리거 출력 기능 사용함 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력 기능의 사용유무를 설정한다.
트리거 출력중 사용안함으로 설정하면 그 즉시 트리거 출력이 멈추게된다.
AxcTableTriggerOneShot, AxcTableGetPatternShotData, AxcTableSetTriggerData, AxcTableGetTriggerDataEx 함수 호출시 자동으로 ENABLE된다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거 기능을 사용
AxcTableSetEnable(0, 0, 1);
AxcTableGetEnable
Purpose
지정한 모듈의 2D 트리거 기능 사용여부를 확인한다.
Format
C++
DWORD AxcTableGetEnable(long lModule, long lTablePos, DWORD* upEnable);
C#
uint AxcTableGetEnable(int lModule, int lTablePos, ref uint upEnable);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[out]uEnable | 2D 트리거 기능 사용여부를 확인함 - [0] 2D 트리거 출력 기능 사용안함 - [1] 2D 트리거 출력 기능 사용함 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거 출력 기능에 할당된 트리거 출력 포트들의 Active Level을 확인한다.
AxcTableSetTriggerOutport 함수를 이용해 설정한 출력 포트들의 Active Level을 의미한다.
예제 코드
DWORD uEnable;
// 0번 모듈의 0번 2D 테이블 트리거 기능 사용 여부를 확인함
AxcTableGetEnable(0, 0, & uEnable);
AxcTableReadTriggerCount
Purpose
지정한 모듈의 2D 테이블 트리거를 이용해 발생된 트리거 개수를 확인한다.
Format
C++
DWORD AxcTableReadTriggerCount(long lModuleNo, long lTablePos, long* lpTriggerCount);
C#
uint AxcTableReadTriggerCount(int lModuleNo, int lTablePos, ref int lpTriggerCount);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[in]lpTriggerCount | 현재까지 출력된 트리거 출력 개수 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거를 이용해 출력된 트리거 개수를 확인한다.
AxcTableSetTriggerCountClear 함수로 초기화 할 수 있다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거에 발생된 트리거 개수를 확인한다.
long lTriggerCount;
AxcTableReadTriggerCount(0, 0, &lTriggerCount);
AxcTableReadFifoStatus
Purpose
지정한 모듈의 2D 테이블 트리거에 할당된 H/W 트리거 데이터 FIFO 의 상태를 확인한다.
Format
C++
DWORD AxcTableReadFifoStatus(long lModuleNo, long lTablePos, long* lpCount1, DWORD* upStatus1, long* lpCount2, DWORD* upStatus2);
C#
uint AxcTableReadFifoStatus(int lModuleNo, int lTablePos, ref uint lpCount1, ref uint upStatus1, ref uint lpCount2, ref uint upStatus2);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[out] lpCount1 | 2D 테이블 트리거 위치 데이타 중 첫번째(X) 위치를 저정하고 있는 H/W FIFO에 입력된 데이타 개수[0~500] |
[out] upStatus1 | 2D 테이블 트리거 위치 데이타 중 첫번째(X) 위치를 저정하고 있는 H/W FIFO의 상태 - [Bit 0] Data Empty - [Bit 1] Data Full - [Bit 2] Data Valid |
[out] lpCount1 | 2D 테이블 트리거 위치 데이타 중 두번째(Y) 위치를 저정하고 있는 H/W FIFO에 입력된 데이타 개수[0~500] |
[out] upStatus1 | 2D 테이블 트리거 위치 데이타 중 두번째(Y) 위치를 저정하고 있는 H/W FIFO의 상태 - [Bit 0] Data Empty - [Bit 1] Data Full - [Bit 2] Data Valid |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거의 H/W FIFO의 상태를 확인한다.
2D 테이블 트리거 관련 함수를 사용할 때는 특별히 사용할 필요는 없다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거의 H/W FIFO상태를 확인
long lCount1, lCount2;
DWORD uStatus1, uStatus2;
AxcTableReadFifoStatus(0, 0, &lCount1, &uStatus1, &lCount2, &uStatus2);
AxcTableReadFifoData
Purpose
지정한 모듈의 2D 테이블 트리거에 할당된 H/W 트리거 데이터 FIFO 의 현재 위치 데이터 값을 확인한다.
Format
C++
DWORD AxcTableReadFifoData(long lModuleNo, long lTablePos, double* dpTopData1, double* dpTopData2);
C#
uint AxcTableReadFifoData(int lModuleNo, int lTablePos, ref double dpTopData1, ref double dpTopData2);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lModuleNo | 모듈 번호 (0 ~ N-1), N : 전체 CNT 채널 개수 |
[in]lTablePos | 테이블 위치 (0 ~ 3) |
[out]dpTopData1 | 2D 테이블 트리거 위치 데이타 중 H/W FIFO의 X 위치 |
[out]dpTopData2 | 2D 테이블 트리거 위치 데이타 중 H/W FIFO의 Y 위치 |
Return Values
[0000] AXT_RT_SUCCESS : AXL 라이브러리 초기화 성공, 연결 상태 정상
[1053] AXT_RT_NOT_OPEN : 라이브러리 초기화 실패
[3251] AXT_RT_CNT_NOT_MODULE : CNT 모듈 없음
Description
지정 CNT 모듈의 2D 테이블 트리거의 H/W FIFO의 다음 트리거(Top)에 있는 X, Y의 위치를 반환한다.
예제 코드
// 0번 모듈의 0번 2D 테이블 트리거에의해 출력된 위치를 확인
double dTopData1, dTopData2;
AxcTableReadFifoData(0, 0, &dTopData1, &dTopData2);