Skip to content

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

2D

Terminal pin map

아래 표 삽입 여부 판단 필요 (프로텍 HPC4에 있는 자료라...)

2D

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트리거 시스템이 허용하는 오차를 감안하여 적절한 에러값을 설정하여 사용한다. 허용 에러 범위가 적을 경우 기구의 상태나 서보 튜닝 상태에 따라 트리거가 출력되지않을 수 있으므로 주의가 필요하다.

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 명령 등) 모드로 자동 변경된다.

2D

예제 코드

// 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 됨

2D

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);