Skip to content

트리거 신호 사용

AXM에는 모션 구동 중 현재의 지령 위치 또는 모터의 실제 위치에 따라 5V레벨/N24V레벨의 트리거 펄스신호를 발생하는 기능이 있다. 트리거 신호는 5V TTL 레벨 또는 N24V sink 타입의 출력 두 가지 모두 사용할 수 있으며, 출력 신호의 Active 레벨을 변경할 수 있다.

트리거 신호 발생 기능을 사용하기 위해서는 먼저 AxmTriggerSetTimeLevel 함수로 트리거의 신호 레벨과 지속 시간 등을 설정하고, 특정 조건에서 트리거를 발생시키는 함수들을 호출하면 된다.

트리거 신호 발생 함수는 크게 세 가지 종류가 있으며, 총 5개의 함수가 존재한다.
1) 특정 위치에서 트리거를 발생하는 AxmTriggerSetAbsPeriod / AxmTriggerOnlyAbs 함수
2) 특정 구간 동안 일정 간격으로 트리거를 발생시키는 AxmTriggerSetBlock 함수
3) 임의의 시점에 한 번의 트리거를 발생시키는 AxmTriggerOneShot / AxmTriggerSetTimerOneshot 함수

1. 함수 리스트

Function Description
AxmTriggerSetTimeLevel 지정 축에 트리거 신호 지속 시간 및 트리거 출력 레벨, 트리거 출력 방법을 설정한다.
AxmTriggerGetTimeLevel 지정 축에 트리거 신호 지속 시간 및 트리거 출력 레벨, 트리거 출력 방법을 반환한다.
AxmTriggerSetAbsPeriod 지정 축에 트리거 기능의 사용 여부, 출력 레벨, 위치 비교기, 트리거 신호 지속 시간 및 트리거 출력 모드를 설정한다.
AxmTriggerGetAbsPeriod 지정 축에 트리거 기능의 사용 여부, 출력 레벨, 위치 비교기, 트리거 신호 지속 시간 및 트리거 출력 모드를 반환한다.
AxmTriggerSetBlock 사용자가 지정한 시작 위치부터 종료 위치까지 일정 구간마다 트리거를 출력한다.
AxmTriggerGetBlock ‘AxmTriggerSetBlock’ 함수의 트리거 설정 값을 읽는다.
AxmTriggerOneShot 사용자가 한 개의 트리거 펄스를 출력한다.
AxmTriggerSetTimerOneshot 사용자가 한 개의 트리거 펄스를 몇 초 후에 출력한다.
AxmTriggerOnlyAbs 절대 위치 트리거 무한대 절대 위치를 출력한다.
AxmTriggerSetReset 트리거 설정을 리셋한다

2. 함수 소개

AxmTriggerSetTimeLevel

Purpose

지정 축의 트리거 출력 시간, 트리거 레벨, 트리거 출력 방법, 트리거 출력 시 인터럽트 설정 여부를 설정한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM
O O

Format

C++
DWORD AxmTriggerSetTimeLevel(long lAxisNo, double dTrigTime, DWORD
uTriggerLevel, DWORD uSelect, DWORD uInterrupt);
C#
uint AxmTriggerSetTimeLevel(int lAxisNo, double dTrigTime, uint
uTriggerLevel, uint uSelect, uint uInterrupt);
Visual Basic
Function AxmTriggerSetTimeLevel(ByVal lAxisNo As Long, ByVal
dTrigTime As Double, ByVal uTriggerLevel As Long, ByVal uSelect As
Long ,ByVal uInterrupt As Long) As Long
Delphi
function AxmTriggerSetTimeLevel(lAxisNo : LongInt; dTrigTime : Double;
uTriggerLevel : Dword; uSelect: Dword ;uInterrupt: Dword) : DWord;
stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))
[in]dTrigTime 트리거 출력 신호 시간 설정 1 – 50000 (50msec)
[in]pSlaveAxisNo 트리거 출력 신호의 사용 여부 및 Active Level
- [00h] B 접점(NORMAL CLOSE) Active Low Level Trigger 신호 사용
- [01h] A 접점(NORMAL OPEN) Active High Level Trigger 신호 사용
- [02h] Trigger 신호 사용 안 함
- [03h] Trigger 신호 사용함 (기존 상태 유지)
[in]uSelect 트리거 기준 위치값 입력 소스 선택
- [00h] 목표 위치
- [01h] 실제 위치
[in]uInterrupt 트리거 출력 시 인터럽트 출력 여부
- [00h] 인터럽트 사용하지 않음
- [01h] 인터럽트 사용함

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

  • Low(B 접점) : 평상시 Close -> 감지되면 Open
  • High(A 점점) : 평상시 Open -> 감지되면 Close
  • Falling Edge : 평상시 High 상태를 유지하다가 트리거 시점에서 Low 로 떨어졌다가 다시 High 로 올라간다.
  • Riging Edge : 평상시 Low 상태를 유지하다가 트리거 시점에서 High 로 올라갔다가 다시 Low 로 떨어진다.

※ 알림: 5V 트리거 출력의 경우 Active Level 을 0 으로 설정했다면 평상시 0V 에서 트리거 발생 시 5V 가 되고, N24V 트리거의 경우 Open 상태에서 트리거가 출력되면 N24V 가 된다. 따라서 단자대를 통해 N24V 로 트리거를 사용할 경우 트리거 출력을 확인하기 위해서는 2kΩ정도의 풀업 저항을 달아 측정해야 한다.

dTrigTime : 트리거 출력 시간, 1usec – 최대 50msec ( 1 – 50000 까지 설정 )

예제 코드

C++
// 0축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
double dTrigTime;
DWORD uTriggerLevel;
DWORD uSelect;
DWORD uInterrupt;

// 0축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정 여부를 반환한다.
AxmTriggerGetTimeLevel(0, &dTrigTime, &uTriggerLevel, &uSelect, &uInterrupt);

AxmTriggerGetTimeLevel

Purpose

지정 축의 트리거 출력 시간, 트리거 레벨, 트리거 출력 방법, 트리거 출력 시 인터럽트 설정 여부를 반환한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM
O O

Format

C++
DWORD AxmTriggerGetTimeLevel(long lAxisNo, double *dpTrigTime, DWORD
*upTriggerLevel, DWORD *upSelect, DWORD *upInterrupt);
C#
uint AxmTriggerGetTimeLevel(int lAxisNo, ref double dpTrigTime, ref
uint upTriggerLevel, ref uint upSelect, ref uint upInterrupt);
Visual Basic
Function AxmTriggerGetTimeLevel(ByVal lAxisNo As Long, ByRef
dpTrigTimeAs Double, ByRef upTriggerLevelAs Long, ByRefupSelectAs
Long , ByRefupInterruptAs Long) As Long
Delphi
function AxmTriggerGetTimeLevel(lAxisNo : LongInt; dpTrigTime :
PDouble; upTriggerLevel : PDWord; upSelect : PDWord; upInterrupt :
PDWord) : DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))
[out]dpTrigTime 트리거 출력 신호 시간 설정 1 – 50000 (50msec)
[out]upTriggerLevel 트리거 출력 신호의 사용 여부 및 Active Level
- [00h] B 접점(NORMAL CLOSE) Active Low Level Trigger 신호 사용
- [01h] A 접점(NORMAL OPEN) Active High Level Trigger 신호 사용
- [02h] Trigger 신호 사용 안 함
- [03h] Trigger 신호 사용함 (기존 상태 유지)
[out]upSelect 트리거 기준 위치값 입력 소스 선택
- [00h] 목표 위치
- [01h] 실제 위치
[out]upInterrupt 트리거 출력 시 인터럽트 출력 여부
- [00h] 인터럽트 사용하지 않음
- [01h] 인터럽트 사용함

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

  • 참고 : 필요한 데이터만 가지고 올 경우 필요하지 않은 변수에 NULL 을 넣어 사용 할 수 있다.
  • ‘AxmTriggerSetTimeLevel’ 설정된 트리거 출력 시간, 트리거 레벨, 트리거 출력 방법, 트리거 출력 시 인터럽트 설정 여부를 반환한다.
  • Low(B 접점) : 평상시 Close -> 감지되면 Open
  • High(A 점점): 평상시 Open -> 감지되면 Close
  • Falling Edge : 평상시 High 상태를 유지하다가 트리거 시점에서 Low 로 떨어졌다가 다시 High 로 올라간다.
  • Riging Edge : 평상시 Low 상태를 유지하다가 트리거 시점에서 High 로 올라갔다가 다시 Low 로 떨어진다.

※ 알림: 5V 트리거 출력의 경우 Active Level 을 0 으로 설정했다면 평상시 0V 에서 트리거 발생 시 5V 가 되고, N24V 트리거의 경우 Open 상태에서 트리거가 출력되면 N24V 가 된다. 따라서 단자대를 통해 N24V 로 트리거를 사용할 경우 트리거 출력을 확인하기 위해서는 2kΩ정도의 풀업 저항을 달아 측정해야 한다.

예제 코드

C++
// 0축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법,출력 시 인터럽트 설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
double dTrigTime;
DWORD uTriggerLevel;
DWORD uSelect;
DWORD uInterrupt;

// 0축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정 여부를 반환한다.
AxmTriggerGetTimeLevel(0, &dTrigTime, &uTriggerLevel, &uSelect, &uInterrupt);

AxmTriggerSetAbsPeriod

Purpose

지정 축의 트리거 기능을 주기, 절대 위치 모드로 설정한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM

Format

C++
DWORD AxmTriggerSetAbsPeriod(long lAxisNo, DWORD uMethod, double dPos);
C#
uint AxmTriggerSetAbsPeriod(int lAxisNo, uint uMethod, double dPos);
Visual Basic
Function AxmTriggerSetAbsPeriod(ByVal lAxisNo As Long, ByVal uMethod
As Long, ByVal dPos As Double) As Long
Delphi
function AxmTriggerSetAbsPeriod(lAxisNo : LongInt; uMethod : Dword;
dPos : Double) : DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))
[in]uMethod 트리거 출력 모드
- [00h] 트리거 위치값을 사용한 주기 트리거 방식
- [01h] 트리거 절대 위치에서 트리거 발생
[in]dPos 트리거 신호를 출력할 위치값(주기 사용 시: 위치마다 트리거 출력)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

  • ‘AxmTriggerSetTimeLevel’로 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 등을 설정 후 사용하여야 한다.
주의 사항
- 트리거 발생 위치를 설정할 경우 반드시 UNIT/PULSE 를 맞추어 설정한다.
- 위치를 UNIT/PULSE 보다 작게 설정할 경우, 최소 단위가 UNIT/PULSE 로 맞추어지기 때문에 그 위치에 출력할 수 없다.
- AxmTriggerSetBlock 함수와 다르게 시작한 위치부터 카운터 변화량을 기준으로 트리거 출력된다.
- 트리거 모드를 주기 모드로 설정하면 함수 실행 시 트리거가 출력된다.
  • Low(B 접점) : 평상시 Close -> 감지되면 Open
  • High(A 점점): 평상시 Open -> 감지되면 Close
  • Falling Edge : 평상시 High 상태를 유지하다가 트리거 시점에서 Low 로 떨어졌다가 다시 High 로 올라간다.
  • Riging Edge : 평상시 Low 상태를 유지하다가 트리거 시점에서 High 로 올라갔다가가 다시 Low 로 떨어진다.

※ 주기 모드: Position 을 100 으로 했을 경우 100 펄스마다 트리거 출력이 발생한다.

※ 절대 모드: Position 을 500 으로 했을 경우 500 위치에 오면 무조건 트리거가 출력된다. 100 펄스마다 트리거 출력이 발생한다.

예제 코드

C++
// 0축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법,출력 시 인터럽트
설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
// 0축 트리거 기능을 주기로 설정.
AxmTriggerSetAbsPeriod(0, PERIOD_MODE, 100);
// 0축 트리거 기능의 사용 여부를 확인.
double uPos;
DWORD uMode;
AxmTriggerGetAbsPeriod(0, &uMode, &uPos);

AxmTriggerGetAbsPeriod

Purpose

지정 축의 트리거 기능의 현재 설정 값들(위치 모드, 주기/위치값)을 반환한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM

Format

C++
DWORD AxmTriggerGetAbsPeriod(long lAxisNo, DWORD *upMethod, double *dpPos);
C#
uint AxmTriggerGetAbsPeriod(int lAxisNo, ref uint upMethod, ref double dpPos);
Visual Basic
Function AxmTriggerGetAbsPeriod(ByVal lAxisNo As Long, ByRef upMethod
As Long, ByRef dpPos As Double) As Long
Delphi
function AxmTriggerGetAbsPeriod(lAxisNo : LongInt; upMethod : PDWord;
dpPos : PDouble) : DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 마스터 채널(축) 번호(0 ~ (최대축수 - 1))
[out]upMethod 트리거 출력 모드
- [00h] 트리거 위치값을 사용한 주기 트리거 방식
- [01h] 트리거 절대 위치에서 트리거 발생
[out]dpPos 트리거 신호를 출력할 위치값(주기 사용 시: 위치마다 트리거 출력)

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

참고 : 필요한 데이터만 가지고 올 경우 필요하지 않은 변수에 NULL 을 넣어 사용 할 수 있다. ‘AxmTriggerSetAbsPeriod’ 함수의 설정된 지정 축에 트리거 기능을 주기, 절대 위치 모드로 반환한다.

예제 코드

C++
// 0축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법,출력시 인터럽트를 설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
// 0축 트리거 기능을 주기로 설정.
AxmTriggerSetAbsPeriod(0, PERIOD_MODE, 100);
// 0축의 트리거 기능 사용 여부를 확인.
double uPos;
DWORD uMode;

AxmTriggerGetAbsPeriod(0, &uMode, &uPos);

AxmTriggerSetBlock

Purpose

사용자가 지정한 시작 위치부터 종료 위치까지 일정 구간마다 트리거 출력을 설정한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM
O O

Format

C++
DWORD AxmTriggerSetBlock(long lAxisNo, double dStartPos, double
dEndPos, double dPeriodPos);
C#
uint AxmTriggerSetBlock(int lAxisNo, double dStartPos, double dEndPos,
double dPeriodPos);
Visual Basic
Function AxmTriggerSetBlock(ByVal lAxisNo As Long, ByVal dStartPos As
Double, ByVal dEndPos As Double, ByVal dPeriodPos As Double) As Long
Delphi
function AxmTriggerSetBlock(lAxisNo : LongInt; dStartPos : Double;
dEndPos : Double; dPeriodPos : Double) : DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))
[in]dStartPos 트리거 신호를 시작할 위치값
[in]dEndPos 트리거 신호를 끝내는 위치값
[in]dPeriodPos 트리거 출력 주기 위치 설정

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

  • AxmTriggerSetTimeLevel’ 함수를 사용하여 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정 이후에 사용하여야 한다. 트리거 출력 레벨에 따라 아래와 같이 달라진다.
주의 사항: 트리거 위치를 설정할 경우 반드시 UNIT/PULSE 를 맞추어서 설정한다.
  • 위치를 UNIT/PULSE 보다 작게할 경우 최소 단위가 UNIT/PULSE 로 맞추어지기 때문에 그 위치에 출력할 수 없다.
  • Low(B 접점) : 평상시 Close -> 감지되면 Open
  • High(A 점점) : 평상시 Open -> 감지되면 Close
  • Falling Edge : 평상시 High 상태를 유지하다가 트리거 시점에서 Low 로 떨어졌다가 다시 High 로 올라간다.
  • Riging Edge : 평상시 Low 상태를 유지하다가 트리거 시점에서 High 로 올라갔다가 다시 Low 로 떨어진다.

예제 코드

C++
// 0 축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법,출력 시 인터럽트 설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
// 100 ~ 1050 사이에 100 펄스마다 트리거 출력을 4msec, 레벨 low 설정,인터럽트 Enable.
AxmTriggerSetBlock(0, 100 , 1050, 100);
// 0 축의‘AxmSetBlockTrigger ‘함수의 트리거 설정 값을 읽는다.
double dpStartPos, dpEndPos, dpPeriodPos;
AxmTriggerGetBlock(0, &dpStartPos, &dpEndPos, &dpPeriodPos);

AxmTriggerGetBlock

Purpose

사용자가 지정한 시작 위치부터 종료 위치까지 일정 구간마다 트리거를 출력하도록 설정한 현재 값을 반환한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM
O O

Format

C++
DWORD AxmTriggerGetBlock(long lAxisNo, double *dpStartPos, double
*dpEndPos, double *dpPeriodPos);
C#
uint AxmTriggerGetBlock(int lAxisNo, ref double dpStartPos, ref
double dpEndPos, ref double dpPeriodPos);
Visual Basic
Function AxmTriggerGetBlock(ByVal lAxisNo As Long, ByRef dpStartPos
As Double, ByRef dpEndPos As Double, ByRef dpPeriodPos As Double) As
Long
Delphi
function AxmTriggerGetBlock(lAxisNo : LongInt; dpStartPos : PDouble;
dpEndPos : PDouble; dpPeriodPos : PDouble) : DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[out]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))
[out]dpStartPos 트리거 신호를 시작할 위치값
[out]dpEndPos 트리거 신호를 끝내는 위치값
[out]dpPeriodPos 트리거 출력 주기 위치 설정

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

참고 : 필요한 데이터만 가지고 올 경우 필요하지 않은 변수에 NULL 을 넣어 사용 할 수 있다. ‘AxmTriggerSetBlock’로 설정된 트리거 기능 설정 값을 반환한다.

예제 코드

C++
// 0 축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트를 설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
// 100 ~ 1050 사이에 100펄스마다 트리거 출력을 4msec, 레벨 low설정,인터럽트 Enable.
AxmTriggerSetBlock(0, 100 , 1050, 100);
// 0 축의‘AxmSetBlockTrigger‘ 함수의 트리거 설정 값을 읽어온다.
double dpStartPos, dpEndPos, dpPeriodPos;
AxmTriggerGetBlock(0, &dpStartPos, &dpEndPos, &dpPeriodPos);

AxmTriggerOneShot

Purpose

사용자가 지정한 위치에 한 개의 트리거 펄스를 출력한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM
O O

Format

C++
DWORD AxmTriggerOneShot(long lAxisNo);
C#
uint AxmTriggerOneShot(int lAxisNo);
Visual Basic
Function AxmTriggerOneShot(ByVal lAxisNo As Long) As Long
Delphi
function AxmTriggerOneShot(lAxisNo : LongInt) : DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

  • ‘AxmTriggerSetTimeLevel’ 함수를 사용하여 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력시 인터럽트 설정 이후 사용하여야 한다. 트리거 출력 레벨에 따라 아래와 같이 달라진다.
  • Low(B 접점) : 평상시 Close -> 감지되면 Open
  • High(A 점점) : 평상시 Open -> 감지되면 Close
  • Falling Edge : 평상시 High 상태를 유지하다가 트리거 시점에서 Low 로 떨어졌다가 다시 High 로 올라간다.
  • Riging Edge : 평상시 Low 상태를 유지하다가 트리거 시점에서 High 로 올라갔다가 다시 Low 로 떨어진다/

예제 코드

C++
// 0 축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
// 0 축의 한 번의 트리거를 강제로 출력시킨다.
AxmTriggerOneShot(0);

AxmTriggerSetTimerOneshot

Purpose

사용자가 함수를 호출한 후 지정한 시간 이후에 트리거 펄스를 출력한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM

Format

C++
DWORD AxmTriggerSetTimerOneshot(long lAxisNo, long lmSec);
C#
uint AxmTriggerSetTimerOneshot(int lAxisNo, int lmSec);
Visual Basic
Function AxmTriggerSetTimerOneshot(ByVal lAxisNo As Long, ByVal lmSec
As Long) As Long
Delphi
function AxmTriggerSetTimerOneshot(lAxisNo : LongInt; lmSec :
LongInt): DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))
[in]lmSec 시간 설정 단위 : mSec

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

  • ‘AxmTriggerSetTimeLevel’ 함수를 사용하여 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정 이후 사용하여야 한다. 트리거 출력 레벨에 따라 아래와 같이 달라진다.
  • Low(B 접점) : 평상시 Close -> 감지되면 Open
  • High(A 점점) : 평상시 Open -> 감지되면 Close
  • Falling Edge : 평상시 High 상태를 유지하다가 트리거 시점에서 Low 로 떨어졌다가 다시 High 로 올라간다.
  • Riging Edge : 평상시 Low 상태를 유지하다가 트리거 시점에서 High 로 올라갔다가 다시 Low 로 떨어진다.

예제 코드

C++
// 0 축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
// 0 축에 1초 후에 한 번의 트리거를 강제로 출력시킨다.
AxmTriggerSetTimerOneshot(0, 1000);

AxmTriggerOnlyAbs

Purpose

위치 개수와 상관없이 사용자가 지정한 절대 위치에 트리거 펄스를 출력한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM
O O

Format

C++
DWORD AxmTriggerOnlyAbs(long lAxisNo, long lTrigNum, double*
dpTrigPos);
C#
uint AxmTriggerOnlyAbs(int lAxisNo, int lTrigNum, double[] dpTrigPos);
Visual Basic
Function AxmTriggerOnlyAbs(ByVal lAxisNo As Long, ByVal lTrigNum As
Long, ByRef dpTrigPos As Double) As Long
Delphi
function AxmTriggerOnlyAbs(lAxisNo : LongInt; lTrigNum : LongInt;
dpTrigPos : PDouble): DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))
[in]lTrigNum 트리거 출력 위치 개수(1000개)
[in]dpTrigPos 트리거 위치 배열

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

  • ‘AxmTriggerSetTimeLevel’ 함수를 사용하여 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법, 출력 시 인터럽트 설정 이후 사용하여야 한다. 트리거 출력 레벨에 따라 아래와 같이 달라진다.
  • Low(B 접점) : 평상시 Close -> 감지되면 Open
  • High(A 점점) : 평상시 Open -> 감지되면 Close
  • Falling Edge : 평상시 High 상태를 유지하다가 트리거 시점에서 Low 로 떨어졌다가 다시 High 로 올라간다.
  • Riging Edg : 평상시 Low 상태를 유지하다가 트리거 시점에서 High 로 올라갔다가 다시 Low 로 떨어진다.

예제 코드

C++
double trig_pos[10];
trig_pos[0] = 100;trig_pos[1] = 200;trig_pos[2] = 300;
trig_pos[3] = 400;trig_pos[4] = 500;trig_pos[5] = 600;
trig_pos[6] = 700;trig_pos[7] = 800;trig_pos[8] = 900;
trig_pos[9] = 1000;
// 0축 트리거 기능의 트리거 출력 시간, 레벨, 출력 방법,출력 시 인터럽트 설정.
AxmTriggerSetTimeLevel(0, 4000, HIGH, 0, 1);
// 0축 사용자의 절대 위치를 설정한다.
AxmTriggerOnlyAbs (0, 10, trig_pos); // trig_time: 1usec ~ 4000 usec

AxmTriggerSetReset

Purpose

사용자가 설정한 트리거 출력을 해제한다.

Serviceable Product

BPHR / BPFR BEHR / BEFR PCI-Nx04 PCIe-Nx04
O O O O
PCI-Rxx04 PCIe-Rxx04-RTEX PCI-Rxx04-MLII PCI-Rxx00-MLIII
A4N A5N/A6N PM A4N A5N/A6N PM SGDV SGDV SGD7 PM
O O
PCI-Rxx04-SIIIH PCIe-Rxx04-SIIIH PCIe-Rxx05-MLIII PCIe-RxxIF-ECAT
MR-J4-B PM MR-J4-B PM SGDV SGD7 PM Servo PM
O O O O
PCIe-Rxx05-ECAT PCIe-Rxx05-ECAT-E
Servo PM Servo PM
O O

Format

C++
DWORD AxmTriggerSetReset(long lAxisNo);
C#
uint AxmTriggerSetReset(int lAxisNo);
Visual Basic
Function AxmTriggerSetReset(ByVal lAxisNo As Long) As Long
Delphi
function AxmTriggerSetReset(lAxisNo : LongInt): DWord; stdcall;

Parameters

[in/out] Name [Init Value] Explanation
[in]lAxisNo 채널(축) 번호(0 ~ (최대축수 - 1))

Return Values

[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO: 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO: 해당 축이 존재하지 않음
* See error code Table for more information on status error codes

Desciption

‘AxmTriggerSetTimeLevel’ 로 설정된 사용자가 지정한 축의 트리거의 설정 여부를 해제한다.

예제 코드

C++
// 0축의 트리거 설정을 해제한다.
AxmTriggerSetReset(0);