모션 파라미터 설정
이 단원에서 소개되어지는 함수들은 모션에 관련된 모든 파라미터 설정에 대해 설명한다. 모션을 구동하기 전에 모션 파라미터 함수들을 자세히 읽어보고 구동하는 것을 권장한다.
모션 파라미터 설정 함수
1. 함수 리스트
Function | Description |
---|---|
AxmMotLoadParaAll | AxmMotSaveParaAll로 저장 되어진 모션 파라미터 파일을 불러온다. 사용자가 임의로 불러서 변경 가능하다. |
AxmMotSaveParaAll | 현재 모든 축에 대한 모든 파라미터를 축 별로 .mot파일에 저장한다. AxmMotLoadParaAll 사용해서 파일을 불러온다. |
AxmMotSetParaLoad | AxmMotSaveParaAll로 저장되는 파라미터 중 28 – 31 까지 파라미터 dInitPos, dInitVel, dInitAccel, dInitDecel 파라미터만 AxmMotSetParaLoad를 사용하여 설정한다. |
AxmMotGetParaLoad | AxmMotSaveParaAll로 저장한 파라미터 중에 28 – 31 까지 파라미터 dInitPos, dInitVel, dInitAccel, dInitDecel 를 확인하는 함수이다. |
AxmMotSetPulseOutMethod | 지정 축의 펄스 출력 방식을 설정한다. |
AxmMotGetPulseOutMethod | 지정 축의 펄스 출력 방식 설정을 반환한다. |
AxmMotSetEncInputMethod | 지정 축의 외부(Act) 카운트의 증가 방향 설정을 포함하여 지정 축의 Encoder 입력 방식을 설정한다. |
AxmMotGetEncInputMethod | 지정 축의 외부(Act) 카운트의 증가 방향 설정을 포함하여 지정 축의 Encoder 입력 방식을 반환한다. |
AxmMotSetMoveUnitPerPulse | 지정 축의 펄스당 움직이는 거리를 설정한다. |
AxmMotGetMoveUnitPerPulse | 지정 축의 펄스당 움직이는 거리를 반환한다. |
AxmMotSetDecelMode | 지정 축의 감속 시작 포인트 검출 방식을 설정한다. |
AxmMotGetDecelMode | 지정 축의 감속 시작 포인트 검출 방식을 반환한다. |
AxmMotSetRemainPulse | 지정 축의 수동 감속 모드에서 잔량 펄스를 설정한다. |
AxmMotGetRemainPulse | 지정 축의 수동 감속 모드에서 잔량 펄스를 반환한다. |
AxmMotSetMinVel | 지정 축에 초기 속도를 설정한다. |
AxmMotGetMinVel | 지정 축의 초기 속도를 반환한다. |
AxmMotSetMaxVel | 지정 축의 등속도 구동 함수에서의 최고 속도를 설정한다. |
AxmMotGetMaxVel | 지정 축의 등속도 구동 함수에서의 최고 속도를 반환한다. |
AxmMotSetEndVel | 지정 축의 종료 속도를 설정한다. |
AxmMotGetEndVel | 지정 축의 종료 속도를 확인한다. |
AxmMotSetAbsRelMode | 지정 축의 이동 거리 계산 모드를 설정한다. 절대 위치 모드(0)로 설정한 경우 이동 함수에 사용하는 위치값은 절대 위치값이 된다. 상대 위치 모드(1)로 설정한 경우에 이동 함수에 사용하는 위치값은 현재 위치에서 이동할 이동량이 된다. |
AxmMotGetAbsRelMode | 지정 축에 설정된 이동 거리 계산 모드를 반환한다. |
AxmMotSetProfileMode | 지정 축의 구동 속도 프로파일 모드를 설정한다. 속도 프로파일 모드에는 대칭 또는 비대칭 Trapezoide / S-Curve 모드가 있다. |
AxmMotGetProfileMode | 지정 축의 설정한 구동 속도 프로파일 모드를 반환한다. |
AxmMotSetProfilePriority | 해당 축의 속도 Profile 결정 시 우선 순위(속도 Or 가속도)를 설정한다. |
AxmMotGetProfilePriority | 지정 축의 속도 Profile결정시 우선순위(속도 Or 가속도)를 반환한다. |
AxmMotSetAccelUnit | 지정 축의 가속도(가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) 단위를 설정한다. 가속도(가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) 단위는 u/s2, sec 중 선택할 수 있다. |
AxmMotGetAccelUnit | 지정 축의 설정된 가속도(가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) 단위를 반환한다. |
AxmMotSetAccelJerk | 지정 축에 가속 저크 값을 설정한다. |
AxmMotGetAccelJerk | 지정 축의 설정된 가속 저크 값을 반환한다. |
AxmMotSetDecelJerk | 지정 축의 감속 저크 값을 설정한다. |
AxmMotGetDecelJerk | 지정 축의 설정된 감속 저크 값을 반환한다. |
AxmMotSetScaleCoeff | 지정 축의 Scale Coefficient를 설정한다. (RTEX A4N 전용) |
AxmMotGetScaleCoeff | 지정 축의 Scale Coefficient를 반환한다. (RTEX A4N 전용) |
AxmMotSetElectricGearRatio | 지정 축의 전자기어비를 설정한다. (SSCNET III/H MRJ4B 전용) |
AxmMotGetElectricGearRatio | 지정 축의 전자기어비를 반환한다. (SSCNET III/H MRJ4B 전용) |
AxmMotSetTorqueLimit | 지정 축의 토크 제한 값을 설정한다. (SSCNET III/H MRJ4B 전용) |
AxmMotGetTorqueLimit | 지정 축의 토크 제한 값을 반환한다. (SSCNET III/H MRJ4B 전용) |
AxmMotSetTorqueLimitAtPos | 지정 축의 토크 리미트 값을 설정 한다. 정방향, 역방향 구동 시의 토크 값을 제한하는 함수 |
AxmMotGetTorqueLimitAtPos | 지정 축의 토크 리미트 값을 확인한다. |
AxmMotSetMultiTorqueLimit | 지정된 축의 Position 범위마다 TorqueLimit을 설정한다. |
AxmMotMultiTorqueLimitEnable | 지정된 축의 Multi Torque Limit을 활성화/비활성화 한다. |
AxmMotMultiTorqueLimitIsEnable | Multi TorqueLimit의 활성화/ 비활성화 상태를 확인한다. |
2. 파일 설정되는 내부 변수 초기값
No | 신호 관련 변수 | 파라미터 설명 | 설정 값 |
---|---|---|---|
00 | AXIS_NO | 축 번호 | 설정 축 번호 |
01 | PULSE_OUT_METHOD | 모션 보드에서 서보팩 지령으로 사용될 펄스의 출력 방식을 설정 | TwoCcwCwHigh |
02 | Enc[Encoder] | Encoder 신호의 입력 방식을 설정 | Sqr4Mode |
03 | InP[InPos] | 서보팩 위치 결정 완료 신호의 사용 여부 및 Active Level을 설정 | 2 |
04 | Alm[Alarm] | 서보팩 알람 신호의 사용 여부 및 Active level을 설정 | 1 |
05 | NLimit | 기구 (-)리미트 센서의 사용 여부 및 Active level을 설정 | 1 |
06 | PLimit | 기구 (+)리미트 센서의 사용 여부 및 Active level을 설정 | 1 |
07 | MinSpd | 모터 구동 시 초기 시작 구동 속도 설정 | 1.0 |
08 | MaxSpd | 모터 구동 시 최대 구동 속도 설정 | 700000.0 |
09 | HmSig | 원점 센서로 사용할 신호를 설정 | 4 |
10 | HmLev | 원점 센서의 Active Level을 설정 | 1 |
11 | HmDir | 원점 센서 검출 시 초기 검색 진행 방향 | 0 |
12 | Zphas_Lev | 엔코더 Z상 Active level | 1 |
13 | Zphas_Use | 원점 센서 검출 후 엔코더 Z상 검출 여부 설정 | 0 |
14 | Stop Signal Mode | ESTOP, SSTOP 사용 시 모드 | 0 |
15 | Stop Signal level | ESTOP, SSTOP 사용 레벨 | 0 |
16 | VelFirst | 원점 검색 시 초기 고속 검출 속도(속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) | 10000.0 |
17 | VelSecond | 원점 검색 시 1차 센서 검출 후 반대 방향으로 빠져나오는 속도 | 10000.0 |
18 | VelThird | 원점 검색 시 1차 센서 검출 후 재검색을 진행하는 속도 | 2000.0 |
19 | VelLast | 원점 검색 시 최종 검출 속도 설정 [원점 검색의 정밀도 결정] |
100.0 |
20 | AccFirst | 원점 검색 시 초기 고속 검출 가속도(가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec^2]) | 40000.0 |
21 | AccSecond | 원점 검색 시 1차 센서 검출 후 반대 방향으로 빠져나오는 가속도(가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec^2]) | 40000.0 |
22 | HClrTim | 원점 검색 완료 후 Cmd, Act위치를 Clear하기 전 대기시간 | 1000.0 |
23 | HOffset | 원점 검색 완료 후 기구 원점 재설정 시 이동 Offset 값 | 0.0 |
24 | NSWLimit | 원점 검색 완료 후 적용할 (-) Software Limit 값 설정 | 0.0 |
25 | PSWLimit | 원점 검색 완료 후 적용할 (+) Software Limit 값 설정 | 0.0 |
26 | OenPulse | 모터 1회전에 필요한 펄스 수 설정 [서보팩 전자기어비 참조] |
1.0 |
27 | OneUnit | 모터 1회전 시 이동되는 이동량 [mm, 도, 등등] | 1 |
28 | InitPosition | 초기화 시 위치 | 200 |
29 | InitVel | 초기화 시 속도(속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) | 200 |
30 | InitAccel | 초기화시 가속도(가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec^2]) | 400 |
31 | InitDecel | 초기화 시 감속도(감속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec^2]) | 400 |
32 | AbsReMode | 초기화 시 절대/상대 모드 | 0 |
33 | ProfMode | 초기화 시 속도 프로파일 모드 | 4 |
3. 함수 소개
AxmMotLoadParaAll
Purpose
모든 축의 초기 값을 지정한 파일에서 읽어 설정한다. AxmMotSaveParaAll 로 저장 되어진 파라미터 파일을 불러온다. 해당 파일은 사용자가 임의로 편집 가능하다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotLoadParaAll(char *szFilePath);
C#
uint AxmMotLoadParaAll(string szFilePath);
Visual Basic
Function AxmMotLoadParaAll(ByRef szFilePath As String) As Long
Delphi
function AxmMotLoadParaAll(szFilePath : PChar) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]szFilePath | 불러올 파일명 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4111] AXT_RT_MOTION_INVALID_FILE_LOAD : 모션 설정 값이 저장된 파일 로드가 안됨
* See error code Table for more information on status error codes
Description
- 모든 축의 초기 값을 지정한 *szFilePath위치에 있는 파일에서 읽어 설정한다.
- 로드되는 파라미터는 파일 설정되는 내부 변수 초기값 표를 참고한다.
- AxlOpen함수를 이용해 라이브러리 Open시 초기에는 .Mot 설정 파일이 없기 때문에 기본 설정 값으로 설정된다.
- 직접 저장하기 위해서는 AxmMotSaveParaAll 함수를 이용하여 내부에 설정된 값들을 .Mot파일에 자동 저장되도록 해야 한다.
예제 코드
char szFileName[50];
strcpy(szFileName, “C:\\Data\\CamcQI.mot”);
AxmMotLoadParaAll(szFileName); // 모든 축의 초기 값을 파일에서 읽어 설정한다.
AxmMotSaveParaAll
Purpose
현재 모든 축에 대한 파라미터를 축 별로 .mot파일에 저장한다. AxmMotLoadParaAll을 사용해서 파일을 불러온다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSaveParaAll(char *szFilePath);
C#
uint AxmMotSaveParaAll(string szFilePath);
Visual Basic
Function AxmMotSaveParaAll(ByRef szFilePath As String) As Long
Delphi
function AxmMotSaveParaAll(szFilePath: PChar) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]szFilePath | 저장할 파일명 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4112] AXT_RT_MOTION_INVALID_FILE_SAVE : 모션 설정 값을 저장하는 파일 저장에 실패함
* See error code Table for more information on status error codes
Description
- 모든 축의 초기 값을 *szFilePath 파일에 저장한다.
- 로드되는 파라미터는 파일 설정되는 내부 변수 초기값 표를 참고한다.
- 초기에는 .Mot 설정 파일이 없기 때문에 기본 설정 값으로 설정된다.
- 직접 설정하기 위해서는 AxmMotSaveParaAll 함수를 이용하여 .Mot파일을 저장시켜 AxmMotLoadParaAll로 불러온다.
예제 코드
char szFileName[50];
strcpy(szFileName, “C:\\Data\\CamCIP.mot”);
AxmMotSaveParaAll(szFileName); // 모든 축의 초기 값을 파일에 저장한다.
AxmMotSetParaLoad
Purpose
AxmMotSaveParaAll로 저장되는 파라미터 중 28 – 31 까지 파라미터 dInitPos, dInitVel, dInitAccel, dInitDecel 를 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetParaLoad(long lAxisNo, double dInitPos, double dInitVel, double dInitAccel, double dInitDecel);
C#
uint AxmMotSetParaLoad(int lAxisNo, double dInitPos, double dInitVel, double dInitAccel, double dInitDecel);
Visual Basic
Function AxmMotSetParaLoad(ByVal lAxisNo As Long, ByVal dInitPos As Double, ByVal dInitVel As Double, ByVal dInitAccel As Double, ByVal dInitDecel As Double) As Long
Delphi
function AxmMotSetParaLoad(lAxisNo : LongInt; dInitPos : Double; dInitVel : Double; dInitAccel : Double; dInitDecel : Double) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dInitPos | [1000.0]초기 위치(사용자가 라이브러리 Open과 동시에 이 값을 가져온다.) |
[in]dInitVel | [200.0]초기 속도(사용자가 라이브러리 Open과 동시에 이 값을 가져온다.) |
[in]dInitAccel | [400.0]초기 가속도(사용자가 라이브러리 Open과 동시에 이 값을 가져온다) |
[in]dInitDecel | [400.0]초기 감속도(사용자가 라이브러리 Open과 동시에 이 값을 가져온다) |
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
Description
- 파일로 저장되는 인자 중 라이브러리 내부에서 사용하지 않고 사용자를 위한 파라미터(InitPos, InitVel, InitAccel, InitDecel)를AxmMotSetParaLoad로 설정한 다음 AxmMotSaveParaAll 함수를 이용하여 저장시킨다.
- 만약 설정을 안한다면 초기 설정 값이 저장된다.
- 해당 파라미터는 프로그램 작성 시 축마다의 구동 파라미터 값을 사용자가 설정한 뒤, 프로그램 종료 후 재시작할 때 불러와 사용하는 용도로 활용된다.
예제 코드
double dInitpos = 1000,dInitvel = 200,dInitaccel = 400,dInitdecel = 400;
AxmMotSetParaLoad(0, dInitpos,dInitvel, dInitaccel, dInitdecel);
double dReadInitpos,dReadInitvel,dReadInitaccel,dReadInitdecel;
AxmMotGetParaLoad(0,&dReadInitpos,&dReadInitvel, &dReadInitaccel, &dReadInitdecel);
AxmMotGetParaLoad
Purpose
AxmMotSaveParaAll로 저장한 파라미터 중 28 – 33 까지의 파라미터 dInitPos, dInitVel, dInitAccel, dInitDecel, uInitAbsRelMode, uInitProfileMode를 확인하는 함수이다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetParaLoad(long lAxisNo, double *dpInitPos, double *dpInitVel, double *dpInitAccel, double *dpInitDecel);
C#
uint AxmMotGetParaLoad(int lAxisNo, ref double dpInitPos, ref double dpInitVel, ref double dpInitAccel, ref double dpInitDecel);
Visual Basic
Function AxmMotGetParaLoad(ByVal lAxisNo As Long, ByRef dpInitPos As Double, ByRef dpInitVel As Double, ByRef dpInitAccel As Double, ByRef dpInitDecel As Double) As Long
Delphi
function AxmMotGetParaLoad(lAxisNo : LongInt; dpInitPos : PDouble; dpInitVel : PDouble; dpInitAccel : PDouble; dpInitDecel : PDouble) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpInitPos | [1000.0]초기 위치(사용자가 라이브러리 Open과 동시에 이 값을 가져온다.) |
out]dpInitVel | [200.0]초기 속도(사용자가 라이브러리 Open과 동시에 이 값을 가져온다.) |
[out]dpInitAccel | [400.0]초기 가속도(사용자가 라이브러리 Open과 동시에 이 값을 가져온다.) |
[out]dpInitDecel | [400.0]초기 감속도(사용자가 라이브러리 Open과 동시에 이 값을 가져온다.) |
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
Description
- 내부 파라미터 중에 28 – 31 까지 파라미터 dInitPos, dInitVel, dInitAccel, dInitDecel의 현재 라이브러리 내부 설정 값을 읽어올 때 사용한다.
- 이 함수와 관계된 내부 파라미터(dInitPos, dInitVel, dInitAccel, dInitDecel)는 AxmMotSetParaLoad로 설정 가능하며, AxmMotLoadParaAll를 사용하여 .Mot 파일에 저장된 값으로 설정 할 수 있다.
예제 코드
double dInitpos = 1000,dInitvel = 200,dInitaccel = 400,dInitdecel = 400;
AxmMotSetParaLoad(0, dInitpos,dInitvel, dInitaccel, dInitdecel);
double dReadInitpos,dReadInitvel,dReadInitaccel,dReadInitdecel;
AxmMotGetParaLoad(0,&dReadInitpos,&dReadInitvel, &dReadInitaccel, &dReadInitdecel);
AxmMotSetPulseOutMethod
Purpose
지정 축의 펄스 출력 방식을 설정한다. 펄스 출력 형태의 모션 제어기(PCI-N804/404, RTEX-PM)에서 사용 가능한 함수이다.
A 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 | ||
X | X | O | X | X | O | X | O | 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 | |||
X | O | X | O | X | X | O | X | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | O | X | O |
Format
C++
DWORD AxmMotSetPulseOutMethod(long lAxisNo, DWORD uMethod);
C#
uint AxmMotSetPulseOutMethod(int lAxisNo, uint uMethod);
Visual Basic
Function AxmMotSetPulseOutMethod(ByVal lAxisNo As Long, ByVal uMethod As Long) As Long
Delphi
function AxmMotSetPulseOutMethod(lAxisNo : LongInt; uMethod : DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uMethod | [04h]펄스 출력 방식 : AXT_MOTION_PULSE_OUTPUT_DEF - [00h]1펄스 방식, PULSE(Active High), 정방향(DIR=Low)/ 역방향(DIR=High) - [01h]1펄스 방식, PULSE(Active High), 정방향(DIR=High) / 역방향(DIR=Low) - [02h]1펄스 방식, PULSE(Active Low), 정방향(DIR=Low) / 역방향(DIR=High) - [03h]1펄스 방식, PULSE(Active Low), 정방향(DIR=High) / 역방향(DIR=Low) - [04h]2펄스 방식, PULSE(CCW:역방향), DIR(CW:정방향), Active High - [05h]2펄스 방식, PULSE(CCW:역방향), DIR(CW:정방향), Active Low - [06h]2펄스 방식, PULSE(CW:정방향), DIR(CCW:역방향), Active High - [07h]2펄스 방식, PULSE(CW:정방향), DIR(CCW:역방향), Active Low - [08h]2상(90' 위상차), PULSE lead DIR(CW:정방향), PULSE lag DIR(CCW:역방향) - [09h]2상(90' 위상차), PULSE lead DIR(CCW:정방향), PULSE lag DIR(CW:역방향) |
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
Description
- 펄스 출력 방식에는 크게 one pulse 출력 방식과 two pulse 출력 방식이 있고, 세부적으로는 각각 4가지 방식으로 나누어져 있다.
- 사용하는 서보 드라이버와 같은 펄스 출력 방식을 설정해야 한다.
- 펄스 출력 방식은 크게 1Pulse 방식과 2Pulse 방식으로 나뉘어지며 각각의 방식은 아래와 같다.

- 서보 드라이브로 출력되는 모션 제어기의 PULS, DIR 의 펄스 출력 방식은 One Pulse 방식, Two Pulse 방식, Two Phase 방식으로 구분한다.
- 같은 펄스 출력 주파수로 4 배의 출력 주파수 효과를 얻을 수 있는 Two phase 방식을 권장한다.
One Pulse 방식

Two Pulse 방식

Two Phase 방식

예제 코드
// 0축에 Two pulse 방식을 설정.
AxmMotSetPulseOutMethod(0, TwoCwCcwHigh);
// 0축의 펄스 출력 방식을 확인.
DWORD Method;
AxmMotGetPulseOutMethod(0, &Method);
AxmMotGetPulseOutMethod
Purpose
지정 축의 펄스 출력 방식을 반환한다.
A 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 | ||
X | X | O | X | X | O | X | O | 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 | |||
X | O | X | O | X | X | O | X | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | O | X | O |
Format
C++
DWORD AxmMotGetPulseOutMethod(long lAxisNo, DWORD *upMethod);
C#
uint AxmMotGetPulseOutMethod(int lAxisNo, ref uint upMethod);
Visual Basic
Function AxmMotGetPulseOutMethod(ByVal lAxisNo As Long, ByRef upMethod As Long) As Long
Delphi
function AxmMotGetPulseOutMethod(lAxisNo : LongInt; upMethod : PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upMethod | [04h]펄스 출력 방식 : AXT_MOTION_PULSE_OUTPUT_DEF - [00h]1펄스 방식, PULSE(Active High), 정방향(DIR=Low)/ 역방향(DIR=High) - [01h] 1펄스 방식, PULSE(Active High), 정방향(DIR=High) / 역방향(DIR=Low) - [02h] 1펄스 방식, PULSE(Active Low), 정방향(DIR=Low) / 역방향(DIR=High) - [03h] 1펄스 방식, PULSE(Active Low), 정방향(DIR=High) / 역방향(DIR=Low) - [04h] 2펄스 방식, PULSE(CCW:역방향), DIR(CW:정방향), Active High - [05h]2펄스 방식, PULSE(CCW:역방향), DIR(CW:정방향), Active Low - [06h] 2펄스 방식, PULSE(CW:정방향), DIR(CCW:역방향), Active High - [07h] 2펄스 방식, PULSE(CW:정방향), DIR(CCW:역방향), Active Low - [08h] 2상(90' 위상차), PULSE lead DIR(CW:정방향), PULSE lag DIR(CCW:역방향) - [09h] 2상(90' 위상차), PULSE lead DIR(CCW:정방향), PULSE lag DIR(CW:역방향) |
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
Description
- AxmMotSetPulseOutMethod로 설정한 지정 축의 펄스 출력 방식을 반환한다.
예제 코드
// 0축에 Two pulse 방식을 설정.
AxmMotSetPulseOutMethod(0, TwoCwCcwHigh);
// 0축의 펄스 출력 방식을 확인.
DWORD Method;
AxmMotGetPulseOutMethod(0, &Method);
AxmMotSetEncInputMethod
Purpose
지정 축의 Encoder 입력 방식을 설정한다.
A 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 | ||
X | X | O | X | X | O | X | X | X | 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 | |||
X | O | X | O | X | X | O | X | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | O | X | O |
Format
C++
DWORD AxmMotSetEncInputMethod(long lAxisNo, DWORD uMethod);
C#
uint AxmMotSetEncInputMethod(int lAxisNo, uint uMethod);
Visual Basic
Function AxmMotSetEncInputMethod(ByVal lAxisNo As Long, ByVal uMethod As Long) As Long
Delphi
function AxmMotSetEncInputMethod(lAxisNo : LongInt; uMethod : DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uMethod | [03h]Encoder 입력 방식 : AXT_MOTION_EXTERNAL_COUNTER_INPUT_DEF - [00h]정방향 Up/Down - [01h]정방향 1체배 - [02h]정방향 2체배 - [03h]정방향 4체배 - [04h]역방향 Up/Down - [05h]역방향 1체배 - [06h]역방향 2체배 - [07h]역방향 4체배 |
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
Description
- Encorder 입력 방식은 8가지로 구분되어 있으며, 대부분의 드라이버가 4체배 방식을 사용하고 있다.
- 서보팩 초기 설정 시, AxmMotSetPulseOutMethod 로 지령 방향과 실제 기구물의 이동 방향을 먼저 맞춘 후 엔코더 값의 방향이 지령 값 방향과 일치하도록 정방향 또는 역방향 설정을 하면 된다.

예제 코드
// 0축의 Encoder 입력 방식을 4체배 방식으로 설정.
AxmMotSetEncInputMethod(0, ObverseSqr4Mode);
// 0축의 Encoder 입력 방식을 확인.
DWORD Method;
AxmMotGetEncInputMethod(0, &Method);
AxmMotGetEncInputMethod
Purpose
지정 축의 Encoder 입력 방식을 반환한다.
A 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 | ||
X | X | O | X | X | O | X | X | X | 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 | |||
X | O | X | O | X | X | O | X | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | O | X | O |
Format
C++
DWORD AxmMotGetEncInputMethod(long lAxisNo, DWORD *upMethod);
C#
uint AxmMotGetEncInputMethod(int lAxisNo, ref uint upMethod);
Visual Basic
Function AxmMotGetEncInputMethod(ByVal lAxisNo As Long, ByRef upMethod As Long) As Long
Delphi
function AxmMotGetEncInputMethod(lAxisNo : LongInt; upMethod : PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upMethod | [03h]Encoder 입력 방식 : AXT_MOTION_EXTERNAL_COUNTER_INPUT_DEF - [00h]정방향 Up/Down - [01h]정방향 1체배 - [02h]정방향 2체배 - [03h]정방향 4체배 - [04h]역방향 Up/Down - [05h]역방향 1체배 - [06h]역방향 2체배 - [07h]역방향 4체배 |
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
Description
- AxmMotSetEncInputMethod로 설정한 지정 축의 Encoder 입력 방식을 반환한다.
예제 코드
// 0축의 Encoder 입력 방식을 4체배 방식으로 설정.
AxmMotSetEncInputMethod(0, ObverseSqr4Mode);
// 0축의 Encoder 입력 방식을 확인.
DWORD Method;
AxmMotGetEncInputMethod(0, &Method);
AxmMotSetMoveUnitPerPulse
Purpose
지정 축의 움직이는 거리당 출력되는 펄스를 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetMoveUnitPerPulse(long lAxisNo, double dUnit, long lPulse);
C#
uint AxmMotSetMoveUnitPerPulse(int lAxisNo, double dUnit, int lPulse);
Visual Basic
Function AxmMotSetMoveUnitPerPulse(ByVal lAxisNo As Long, ByVal dUnit As Double, ByVal lPulse As Long) As Long
Delphi
function AxmMotSetMoveUnitPerPulse(lAxisNo : LongInt; dUnit : Double; lPulse : LongInt) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dUnit | [1.0]단위 이동 거리 |
[in]lPulse | [1]단위 펄스 값 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO : 해당 축 모션 초기화 실패
[4254] AXT_RT_MOTION_MOVE_UNIT_IS_ZERO : 구동 단위 값이 0으로 설정됨
* See error code Table for more information on status error codes
Description
- 기본적으로 사용자가 라이브러리의 명령어에서 지정해주는 이동 거리 지령 값은 아래의 그림에서와 같이 두 번의 단위 변환 과정을 거치게 된다.

- 소프트웨어 상에서 이동량을 입력하면, 설정된 Unit/Pulse라는 파라미터에 의해 모션 제어기의 출력 펄스 수가 결정된다.
- 그리고 이 출력 펄스는 서보 드라이브에 설정되어있는 전자기어비라는 파라미터에 의해 또 한 번 변환되며, 이를 통해 실제 모터를 구동시키는 구동 펄스 수가 결정된다.
- 여기서 Unit/Pulse는 모션 구동 함수를 실행 함에 있어서 주어지는 값들의 단위를 지정해주기 위한 파라미터이며, 이 값을 설정하는 함수가 AxmMotSetMoveUnitPerPulse 이다.
- 쉽게 말해서 Unit에 10을 설정하고 Pulse에 100을 설정한다면, 모션 구동 함수에서 10을 명령하면 100개의 펄스가 서보 드라이브로 출력된다는 뜻이다.
- 모션 라이브러리 사용법 3 참고
예제 코드
// 0축의 움직이는 거리당 출력되는 펄스 수를 100으로 설정.
AxmMotSetMoveUnitPerPulse(0, 1, 100);
// 0축의 움직이는 거리당 출력되는 펄스 수를 반환한다.
long lpPulse;
double dpUnit;
AxmMotGetMoveUnitPerPulse (0, &dpUnit,&lpPulse);
AxmMotGetMoveUnitPerPulse
Purpose
지정 축의 움직이는 거리당 출력되는 펄스를 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetMoveUnitPerPulse(long lAxisNo, double *dpUnit, long *lpPulse);
C#
uint AxmMotGetMoveUnitPerPulse(int lAxisNo, ref double dpUnit, ref int lpPulse);
Visual Basic
Function AxmMotGetMoveUnitPerPulse(ByVal lAxisNo As Long, ByRef dpUnit As Double, ByRef lpPulse As Long) As Long
Delphi
function AxmMotGetMoveUnitPerPulse(lAxisNo : LongInt; dpUnit : PDouble; lpPulse : PLongInt) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpUnit | [1.0]단위 이동 거리 |
[out]lpPulse | [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
Description
AxmMotSetMoveUnitPerPulse로 설정한 지정 축의 움직이는 거리당 출력되는 펄스를 반환한다.
참고 : 필요한 데이터만 가지고 오고 싶을 때는 필요하지 않은 변수에 NULL을 넣어 사용 가능하다.
예제 코드
// 0축의 움직이는 거리당 출력되는 펄스 수를 100으로 설정.
AxmMotSetMoveUnitPerPulse(0, 1, 100);
// 0축의 움직이는 거리당 출력되는 펄스 수를 반환한다.
long lpPulse;
double dpUnit;
AxmMotGetMoveUnitPerPulse (0, &dpUnit,&lpPulse);
AxmMotSetDecelMode
Purpose
지정 축의 감속 시작 포인트 검출 방식을 설정한다.
A 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 | O | O | O | O | O | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotSetDecelMode(long lAxisNo, DWORD uMethod);
C#
uint AxmMotSetDecelMode(int lAxisNo, uint uMethod);
Visual Basic
Function AxmMotSetDecelMode(ByVal lAxisNo As Long, ByVal uMethod As Long) As Long
Delphi
function AxmMotSetDecelMode(lAxisNo : LongInt; uMethod : DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uMethod |
감속 시작 포인트 검출 방식 : AXT_MOTION_DETECT_DOWN_START_POINT_DEF - [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
Description
- 검출 방식은 자동 검출 방식(Autodetect)과, 나머지 검출 방식(RestPulse)이 있다.
- 초기 값은 자동 검출 방식으로 설정되어 있다.
예제 코드
// 0축의 감속 시작 포인트 검출 방식을 자동 검출 방식으로 설정.
AxmMotSetDecelMode(0, AutoDetect);
// 0축의 감속 시작 포인트 검출 방식을 확인.
DWORD Method;
AxmMotGetDecelMode(0, &Method);
AxmMotGetDecelMode
Purpose
지정 축의 감속 시작 포인트 검출 방식을 반환한다.
A 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 | O | O | O | O | O | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotGetDecelMode(long lAxisNo, DWORD *upMethod);
C#
uint AxmMotGetDecelMode(int lAxisNo, ref uint upMethod);
Visual Basic
Function AxmMotGetDecelMode(ByVal lAxisNo As Long, ByRef upMethod As Long) As Long
Delphi
function AxmMotGetDecelMode(lAxisNo : LongInt; upMethod : PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upMethod |
감속 시작 포인트 검출 방식 : AXT_MOTION_DETECT_DOWN_START_POINT_DEF - [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
Description
AxmMotSetDecelMode로 설정한 지정 축의 감속 시작 포인트 검출 방식을 반환한다.
예제 코드
// 0축의 감속 시작 포인트 검출 방식을 자동 검출 방식으로 설정.
AxmMotSetDecelMode(0, AutoDetect);
// 0축의 감속 시작 포인트 검출 방식을 확인.
DWORD Method;
AxmMotGetDecelMode(0, &Method);
AxmMotSetRemainPulse
Purpose
지정 축의 감속 시작 위치에 대하여 설정한다.
A 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 | O | O | O | O | O | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotSetRemainPulse(long lAxisNo, DWORD uData);
C#
uint AxmMotSetRemainPulse(int lAxisNo, uint uData);
Visual Basic
Function AxmMotSetRemainPulse(ByVal lAxisNo As Long, ByVal uData As Long) As Long
Delphi
function AxmMotSetRemainPulse(lAxisNo : LongInt; uData : DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uData | 설정된 잔량 펄스 |
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
Description
- AxmMotSetDecelMode에서 AutoDetect (0)로 Setting되면 AxmMotSetRemainPulse함수를 이용하여 구동 감속 후 최소 속도로 구동할 구동 펄스를 지정할 수 있다.
- 예를 들어, AxmMoveStartPos를 이용하여 1000펄스를 보내고 5펄스 잔량 펄스를 설정하게 되면, 마지막 995펄스부터 AxmMotSetMinVel 로 설정한 속도로 감속하여 그 속도로 5펄스만큼 유지하면서 감속하게 된다. 마지막 시점에서 감속을 유지할 때 사용한다.

- AxmMotSetDecelMode에서 RestPulse (1)로 Setting되면 AxmMotSetRemainPulse함수를 이용하여 감속 시점에 대해 남은 펄스 수를 설정한다.
- 예를 들어 AxmMoveStartPos를 이용하여 1000 거리를 설정하고 가속 시 100이 필요한 구동을 하였다면, AxmMotSetRemainPulse를 사용하여 설정한 값에 따라 다음과 같이 동작한다.
- 감속 위치 설정 값이 100 보다 작을 경우 : 출발 정지 속도까지 감속하기 전에 구동이 완료된다.
- 감속 위치 설정 값이 100 보다 클 경우 : 출발 정지 속도로 감속하여 100보다 큰 값 만큼 구동 후 완료한다.
주의점) 이 함수의 입력값은 무조건 펄스 단위이기 때문에 AxmMotSetMoveUnitPerPulse로 제어 단위를 Unit으로 변경했다면 설정한 값을 사용하여 위치값(Unit)을 펄스 단위로 변환해서 지정해야 한다.
예제 코드
// 0축의 수동 감속 모드에서 잔량 펄스를 설정.
AxmMotSetRemainPulse(0, 5);
AxmMoveStartPos(0, 1000, 100, 200, 200);
// 0축의 수동 감속 모드에서 잔량 펄스를 확인.
DWORD Data;
AxmMotGetRemainPulse(0, &Data);
AxmMotGetRemainPulse
Purpose
지정 축의 수동 감속 모드에서 잔량 펄스를 반환한다.
A 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 | O | O | O | O | O | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotGetRemainPulse(long lAxisNo, DWORD *upData);
C#
uint AxmMotGetRemainPulse(int lAxisNo, ref uint upData);
Visual Basic
Function AxmMotGetRemainPulse(ByVal lAxisNo As Long, ByRef upData As Long) As Long
Delphi
function AxmMotGetRemainPulse(lAxisNo : LongInt; upData : PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upData | 설정된 잔량 펄스 |
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
Description
AxmMotSetRemainPulse 함수를 사용하여 지정한 축의 수동 감속 모드에서 잔량 펄스를 반환한다.
예제 코드
// 0축의 수동 감속 모드에서 잔량 펄스를 설정.
AxmMotSetRemainPulse(0, 1000);
// 0축의 수동 감속 모드에서 잔량 펄스를 확인.
DWORD Data;
AxmMotGetRemainPulse (0, &Data);
AxmMotSetMinVel
Purpose
지정 축에 초기 속도를 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetMinVel(long lAxisNo, double dMinVelocity);
C#
uint AxmMotSetMinVel(int lAxisNo, double dMinVelocity);
Visual Basic
FunctionAxmMotSetMinVel(ByVal lAxisNo As Long, ByVal dMinVelocity As Double) As Long
Delphi
functionAxmMotSetMinVel(lAxisNo : LongInt; dMinVelocity : Double) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dMinVelocity | [1.0]초기 속도(초기 속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) |
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
Description
- 초기 속도는 가속의 시작 속도와 감속의 종료 속도를 의미한다.
- 초기 속도가 작업 속도보다 높게 설정되면 기존에 설정된 초기 속도로부터 출발하여 작업 속도까지 도달하며 그 이후의 이동은 초기 설정 속도로 가속없이 동작한다.
- 특별한 경우가 아니면 이 함수를 사용할 필요는 없지만, 기본적으로 초기 속도는 1로 설정된다.
- 스텝 모터를 사용할 경우 기동 초기 속도를 설정하여 탈조 현상을 없앨 수 있다.
주의점) 최소 속도를 UNIT/PULSE보다 작게할 경우 최소 단위가 UNIT/PULSE로 맞추어지기 때문에 최소 속도가 UNIT/PULSE 가 된다.
예제 코드
// 0축의 초기 속도를 1로 설정.
AxmMotSetMinVel(0, 1);
// 0축의 초기 속도를 확인.
double MinVelocity;
AxmMotGetMinVel(0, &MinVelocity);
AxmMotGetMinVel
Purpose
지정 축의 초기 속도를 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetMinVel(long lAxisNo, double *dpMinVelocity);
C#
uint AxmMotGetMinVel(int lAxisNo, ref double dpMinVelocity);
Visual Basic
Function AxmMotGetMinVel(ByVal lAxisNo As Long, ByRef dpMinVelocity As Double) As Long
Delphi
function AxmMotGetMinVel(lAxisNo : LongInt; dpMinVelocity : PDouble) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpMinVelocity | [1.0]초기 속도(초기속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) |
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
Description
AxmMotSetMinVel 설정한 지정 축의 초기 속도를 반환한다.
예제 코드
// 0축의 초기 속도를 1로 설정.
AxmMotSetMinVel(0, 1);
// 0축의 초기 속도를 확인.
double MinVelocity;
AxmMotGetMinVel(0, &MinVelocity);
AxmMotSetMaxVel
Purpose
모든 구동 함수의 최대 구동 속도를 지정 속도로 제한한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetMaxVel(long lAxisNo, double dVel);
C#
uint AxmMotSetMaxVel(int lAxisNo, double dVel);
Visual Basic
Function AxmMotSetMaxVel(ByVal lAxisNo As Long, ByVal dVel As Doubel) As Long
Delphi
function AxmMotSetMaxVel(lAxisNo : LongInt; dVel : Double) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dVel | [700000.0]최고 구동 속도(Unit/Sec)(구동 속도의 단위는 Unit/pulse를 1/1인 경우에 PPS[Pulses/sec]이다.) |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4113] AXT_RT_MOTION_INVALID_VELOCITY : 모션 구동 속도 값이 0으로 설정되어 모션 에러 발생
[4152] AXT_RT_MOTION_ERROR_IN_MOTION : 모션 구동 중에 설정 함수를 실행함
* See error code Table for more information on status error codes
Description
지정한 축에 대한 모든 구동 함수에서 입력되는 속도값을 AxmMotSetMaxVel에서 설정한 속도로 제한한다.
주의점) SMC-2V03 제품은 최대 4MPPS까지 설정이 가능하며, PCI-Nx04는 최대 10MPPS까지 설정이 가능하다. 즉 AxmMotSetMoveUnitPerPulse 함수로 설정된 Unit/Pulse 값에 따라 AxmMotSetMaxVel의 최대 속도값이 다르게 적용된다. 예를 들어 Unit/Pulse 가 0.01이라면AxmMotSetMaxVel로 설정할 수 있는 최대 값은 SMC-2V03 제품에 대하여서는 (4M / 100)이며 PCI-Nx04는 (10M/100) 이다.
예제 코드
// 0축의 정속도 구동을 위한 최고 속도를 1000으로 설정.
AxmMotSetMaxVel (0, 1000);
// 0축의 정속도 구동 최고 속도 확인.
double Vel;
AxmMotGetMaxVel (0, &Vel);
AxmMotGetMaxVel
Purpose
지정 축의 등속도 구동 함수에서의 최고 속도를 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetMaxVel(long lAxisNo, double *dpVel);
C#
uint AxmMotGetMaxVel(int lAxisNo, ref double dpVel);
Visual Basic
Function AxmMotGetMaxVel(ByVal lAxisNo As Long, ByRef dpVel As Double) As Long
Delphi
function AxmMotGetMaxVel(lAxisNo : LongInt; dpVel : PDouble) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpVel | [700000.0]최고 구동 속도(Unit/Sec)(구동 속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec]) |
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
Description
지정 축의 등속도 구동 함수에서의 최고 속도를 반환한다.
예제 코드
// 0축의 정속도 구동을 위한 최고 속도를 1000으로 설정.
AxmMotSetMaxVel (0, 1000);
// 0축의 정속도 구동 최고 속도 확인.
double Vel;
AxmMotGetMaxVel (0, &Vel);
AxmMotSetEndVel
Purpose
지정 축의 종료 속도를 설정한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | X | X | X | X | X | X | X | X | X | ||
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 | |||
X | X | X | X | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetEndVel(long lAxisNo, double dEndVelocity);
C#
uint AxmMotSetEndVel(int nAxisNo, double dEndVelocity);
Visual Basic
Function AxmMotSetEndVel(ByVal lAxisNo As Integer, ByVal dEndVelocity As Double) As Long
Delphi
function AxmMotSetEndVel(lAxisNo : LongInt; dEndVelocity : Double) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dEndVelocity | 종료 속도 |
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
Description
- 지정 축의 종료 속도를 설정한다.
- 종료 속도를 지정하지 않으면 속도는 설정한 감속도에 따라 감속하여 ‘0’이 된다.
- 하지만 종료 속도를 지정하면 지정한 속도까지만 감속한다.
- 만약에 연속 보간 구동이 아니어서 현재의 프로파일이 종료될 때 뒤따라 오는 프로파일이 없다면, 지정된 속도까지만 감속하고 지정한 속도에 도달하면 급정지한다.
- 따라서 종료 속도는 연속 보간 구동을 사용하고 있을 때만 사용하는 것이 바람직하다.
- 연속 보간 구동을 사용할 때 종료 속도를 설정하면 프로파일의 종료 시 속도가 ‘0’이 되지 않으므로 설정한 값에 따라 부드러운 모션을 구현할 수 있다.
적용 함수 : AxmMoveStartPos, AxmMovePos, MoveStartMultiPos, AxmMoveMultiPos, MoveStartPosWithPosEvent, AxmMoveStartPosWithPosEvent, AxmOverrideLineVel, AxmOverrideAccelVelDecel, AxmOverrideLineAccelVelDecel, AxmOverrideVelAtPos, AxmOverrideVelAtMultiPos, AxmLineMove, AxmCirclePointMove, AxmHelixPitchMove, AxmMotGetEndVel
예제 코드
// 0번 축의 종료 속도를 5으로 설정한다.
long lAxisNo = 0;
double dEndVelocity = 5;
AxmMotSetEndVel(lAxisNo, dEndVelocity);
AxmMotGetEndVel
Purpose
지정 축의 등속도 구동 함수에서의 최고 속도를 반환한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | X | X | X | X | X | X | X | X | X | ||
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 | |||
X | X | X | X | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetEndVel(long lAxisNo, double *dpEndVelocity);
C#
uint AxmMotGetEndVel(int lAxisNo, ref double dpEndVelocity);
Visual Basic
Function AxmMotGetEndVel(ByVal lAxisNo As Integer, ByRef dpEndVelocity As Double) As Integer
Delphi
function AxmMotGetEndVel(lAxisNo : LongInt; dpEndVelocity : PDouble) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpEndVelocity | 종료속도 |
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
Description
지정 축의 종료 속도를 확인한다.
예제 코드
// 0번 축의 종료 속도를 확인한다.
long lAxisNo = 0;
double dEndVelocity;
AxmMotGetEndVel(lAxisNo, &dEndVelocity);
AxmMotSetAbsRelMode
Purpose
지정 축의 이동 거리 계산 모드를 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetAbsRelMode(long lAxisNo, DWORD uAbsRelMode);
C#
uint AxmMotSetAbsRelMode(int lAxisNo, uint uAbsRelMode);
Visual Basic
Function AxmMotSetAbsRelMode(ByVal lAxisNo As Long, ByVal uAbsRelMode As Long) As Long
Delphi
function AxmMotSetAbsRelMode(lAxisNo : LongInt; uAbsRelMode : DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uAbsRelMode | [00h]펄스 출력 방식 : AXT_MOTION_ABSREL_MODE_DEF - [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
Description
- 절대위치 모드POS_ABS_MODE(0)로 설정한 경우, 이동 함수에 사용하는 위치값은 절대 위치값이 된다.
- 예를 들어, 현재 위치값이 ‘10’일 때 절대 위치 모드에서 ‘100’ 위치로 이동할 경우 현재 위치에서 ‘+90’만큼 이동하여 ‘100’ 위치에서 정지하게 된다.
- 상대 위치 모드POS_REL_MODE(1)로 설정한 경우는 이동 함수에 사용하는 위치값은 현재 위치에서 이동할 이동량이 된다.
- 예를 들어, 현재 위치값이 ‘10’일 때 상대 위치 모드에서 ‘100’ 만큼 이동할 경우, 현재 위치에서 ‘+100’만큼 이동하여 ‘110’의 위치에서 정지하게 된다.
예제 코드
// 0축을 절대 모드로 설정.
AxmMotSetAbsRelMode(0, POS_ABS_MODE);
// 0축의 이동 모드 확인.
DWORD Mode;
AxmMotGetAbsRelMode(0, &Mode);
AxmMotGetAbsRelMode
Purpose
지정 축의 설정한 이동 거리 계산 모드를 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetAbsRelMode(long lAxisNo, DWORD *upAbsRelMode);
C#
uint AxmMotGetAbsRelMode(int lAxisNo, ref uint upAbsRelMode);
Visual Basic
Function AxmMotGetAbsRelMode(ByVal lAxisNo As Long, ByRef upAbsRelMode As Long) As Long
Delphi
function AxmMotGetAbsRelMode(lAxisNo : LongInt; upAbsRelMode : PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upAbsRelMode | [00h]펄스 출력 방식 : AXT_MOTION_ABSREL_MODE_DEF - [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
Description
AxmMotSetAbsRelMode로 설정한 이동 거리 계산 모드를 반환한다.
예제 코드
// 0축을 절대 모드로 설정.
AxmMotSetAbsRelMode(0, POS_ABS_MODE);
// 0축의 이동 모드 확인.
DWORD Mode;
AxmMotGetAbsRelMode(0, &Mode);
AxmMotSetProfileMode
Purpose
지정 축의 구동 속도 프로파일을 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetProfileMode(long lAxisNo, DWORD uProfileMode);
C#
uint AxmMotSetProfileMode(int lAxisNo, uint uProfileMode);
Visual Basic
Function AxmMotSetProfileMode(ByVal lAxisNo As Long, ByVal uProfileMode As Long) As Long
Delphi
function AxmMotSetProfileMode(lAxisNo : LongInt; uProfileMode : DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uProfileMode | [04h]속도 프로파일 모드:AXT_MOTION_PROFILE_MODE_DEF - [00h]대칭 Trapezode - [01h]비대칭 Trapezode - [02h] Reserved - [03h]대칭 S Curve - [04h]비대칭 S Curve |
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
Description
- 구동 속도 프로파일은 대칭 Trapezoid 모드, 비대칭 Trapezoid 모드, 대칭 S Curve 모드, 비대칭 S Curve 모드가 있다.
- 각 속도 프로파일 모드의 그래프는 아래와 같다.

예제 코드
// 대칭 S-Curve로 0축의 속도 프로파일 설정.
AxmMotSetProfileMode (0, 3);
// 0축의 속도 프로파일 확인.
DWORD uProfile;
AxmMotGetProfileMode (0, &uProfile);
AxmMotGetProfileMode
Purpose
지정 축의 설정된 구동 속도 프로파일을 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetProfileMode(long lAxisNo, DWORD *upProfileMode);
C#
uint AxmMotGetProfileMode(int lAxisNo, ref uint upProfileMode);
Visual Basic
Function AxmMotGetProfileMode(ByVal lAxisNo As Long, ByRef upProfileMode As Long) As Long
Delphi
function AxmMotGetProfileMode(lAxisNo : LongInt; upProfileMode : PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upProfileMode | [04h]속도 프로파일 모드:AXT_MOTION_PROFILE_MODE_DEF - [00h]대칭 Trapezode - [01h]비대칭 Trapezode - [02h] Reserved - [03h]대칭 S Curve - [04h]비대칭 S Curve |
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
Description
AxmMotSetProfileMode로 설정한 지정 축의 구동 속도 프로파일을 반환한다.
예제 코드
// 대칭 S-Curve로 0축의 속도 프로파일 설정.
AxmMotSetProfileMode (0, SYM_S_CURVE_MODE);
// 0축의 속도 프로파일 확인.
DWORD uProfile;
AxmMotGetProfileMode (0, &uProfile);
AxmMotSetProfilePriority
Purpose
해당 축의 속도 Profile 결정 시 우선 순위(속도 Or 가속도)를 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetProfilePriority(long lAxisNo, DWORD uPriority);
C#
uint AxmMotSetProfilePriority(int nAxisNo, uint uPriority);
Visual Basic
Function AxmMotSetProfilePriority(ByVal lAxisNo As Integer, ByVal uPriority As Integer) As Integer
Delphi
function AxmMotSetProfilePriority(lAxisNo : LongInt; uPriority: DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uPriority | 속도 Profile 결정 시 우선 순위 설정 - [00h] 속도 값에 가깝도록 계산함 - [01h] 가감속 시간에 가깝도록 계산함 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO : 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO : 해당 축이 존재하지 않음
[4102] AXT_RT_MOTION_INVALID_METHOD : 해당 축 구동에 필요한 설정이 잘못됨
* See error code Table for more information on status error codes
Description
- 해당 축의 속도 Profile 결정 시 우선 순위를 설정한다.
- [00h] 설정 시, 사용자가 지정한 속도 값에 가깝도록 계산하여 주로 일반 장비 및 Spinner에 사용된다.
- [01h] 설정 시, 사용자가 지정한 가감속 시간에 가깝도록 계산한다.
예제 코드
// 1번 축의 Profile Priority 를 속도 값으로 설정한다.
long lAxisNo = 1;
DWORD uPriority = 0;
AxmMotMultiTorqueLimitIsEnable(lAxisNo, uPriority);
AxmMotGetProfilePriority
Purpose
지정 축의 속도 Profile 결정 시 우선순위(속도 Or 가속도)를 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetProfilePriority(long lAxisNo, DWORD *upPriority);
C#
uint AxmMotGetProfilePriority(int nAxisNo, ref uint upPriority);
Visual Basic
Function AxmMotGetProfilePriority(ByVal lAxisNo As Integer, ByRef upPriority As Integer) As Integer
Delphi
function AxmMotGetProfilePriority(lAxisNo : LongInt; upPriority: DWord) : PDWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upPriority | 속도 Profile 결정 시 우선 순위 설정 - [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
Description
- 해당 축의 속도 Profile 결정 시 우선 순위를 설정한다.
- [00h] 설정 시, 사용자가 지정한 속도 값에 가깝도록 계산하여 주로 일반 장비 및 Spinner에 사용된다.
- [01h] 설정 시, 사용자가 지정한 가감속 시간에 가깝도록 계산한다.
예제 코드
// 1번 축의 Profile Priority 를 확인한다.
long lAxisNo = 1;
DWORD uPriority;
AxmMotMultiTorqueLimitIsEnable(lAxisNo, &uPriority);
AxmMotSetAccelUnit
Purpose
지정 축의 가속도 단위를 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetAccelUnit(long lAxisNo, DWORD uAccelUnit);
C#
uint AxmMotSetAccelUnit(int lAxisNo, uint uAccelUnit);
Visual Basic
Function AxmMotSetAccelUnit(ByVal lAxisNo As Long, ByVal uAccelUnit As Long) As Long
Delphi
function AxmMotSetAccelUnit(lAxisNo : LongInt; uAccelUnit : DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uAccelUnit | 가속도:AXT_MOTION_ACC_UNIT_DEF (가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec^2]) - [00h]unit/sec2 - [01h] sec |
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
Description
지정 축의 가속도는 이동 속도의 가속률을 바탕으로 계산하는 unit/sec2 (0) 단위로 설정하거나, 가속 시간 sec (1)를 설정할 수 있다.
예제 코드
// 0축의 가속도 단위 unit/sec2 설정.
AxmMotSetAccelUnit (0, UNIT_SEC2);
// 0축의 가속도 단위 확인.
DWORD uAccelUnit;
AxmMotGetAccelUnit (0, &uAccelUnit);
AxmMotGetAccelUnit
Purpose
지정 축의 설정한 가속도 단위를 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetAccelUnit(long lAxisNo, DWORD *upAccelUnit);
C#
uint AxmMotGetAccelUnit(int lAxisNo, ref uint upAccelUnit);
Visual Basic
Function AxmMotGetAccelUnit(ByVal lAxisNo As Long, ByRef upAccelUnit As Long) As Long
Delphi
function AxmMotGetAccelUnit(lAxisNo : LongInt; upAccelUnit : PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upAccelUnit | 가속도:AXT_MOTION_ACC_UNIT_DEF (가속도의 단위는 Unit/pulse를 1/1로 한 경우에 PPS[Pulses/sec^2]) - [00h]unit/sec2 - [01h] sec |
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
Description
AxmMotSetAccelUnit로 설정한 지정 축의 가속도 단위를 반환한다.
예제 코드
// 0축의 가속도 단위 unit/sec2 설정.
xmMotSetAccelUnit (0, UNIT_SEC2);
// 0축의 가속도 단위 확인.
DWORD uAccelUnit;
AxmMotGetAccelUnit (0, &uAccelUnit);
AxmMotSetAccelJerk
Purpose
지정 축의 가속 저크 값을 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetAccelJerk(long lAxisNo, double dAccelJerk);
C#
uint AxmMotSetAccelJerk(int lAxisNo, double dAccelJerk);
Visual Basic
Function AxmMotSetAccelJerk(ByVal lAxisNo As Long, ByVal dAccelJerk As Double) As Long
Delphi
function AxmMotSetAccelJerk(lAxisNo : LongInt; dAccelJerk : Double) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dAccelJerk | 가속 저크 값, 단위는 %( 0 ~ 100) |
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
Description
단위는 %이며, S-Curve 속도 프로파일 모드로 구동할 경우, 가속 시 최대 속도와 시작 속도 사이에서 S-Curve로 구동할 범위를 %로 설정한다.
예제 코드
// 0축의 저크 값 설정.
AxmMotSetAccelJerk(0, 20);
AxmMotSetDecelJerk(0, 20);
// 0의 저크 값 확인.
double dAccelJerk, dDecelJerk;
AxmMotGetAccelJerk(0, &dAccelJerk);
AxmMotGetDecelJerk(0, &dDecelJerk);
AxmMotGetAccelJerk
Purpose
지정 축에 설정된 가속 저크 값을 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetAccelJerk(long lAxisNo, double *dpAccelJerk);
C#
uint AxmMotGetAccelJerk(int lAxisNo, ref double dpAccelJerk);
Visual Basic
Function AxmMotGetAccelJerk(ByVal lAxisNo As Long, ByRef dpAccelJerk As Double) As Long
Delphi
function AxmMotGetAccelJerk(lAxisNo : LongInt; dpAccelJerk : PDouble) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpAccelJerk | 가속 저크 값, 단위는 %( 0 ~ 100) |
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
Description
단위는 %이며, S-Curve 속도 프로파일 모드로 구동할 경우, 가속 시 최대 속도와 시작 속도 사이에서 S-Curve로 구동할 범위 %로 설정되어 있는 값을 반환한다.
예제 코드
// 0축의 저크 값 설정.
AxmMotSetAccelJerk(0, 20);
AxmMotSetDecelJerk(0, 20);
// 0축의 저크 값 확인.
double dAccelJerk, dDecelJerk;
AxmMotGetAccelJerk(0, &dAccelJerk);
AxmMotGetDecelJerk(0, &dDecelJerk);
AxmMotSetDecelJerk
Purpose
지정 축의 감속 저크 값을 설정한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetDecelJerk(long lAxisNo, double dDecelJerk);
C#
uint AxmMotSetDecelJerk(int lAxisNo, double dDecelJerk);
Visual Basic
Function AxmMotSetDecelJerk(ByVal lAxisNo As Long, ByVal dDecelJerk As Double) As Long
Delphi
function AxmMotSetDecelJerk(lAxisNo : LongInt; dDecelJerk : Double) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dDecelJerk | 감속 저크 값, 단위는 %( 0 ~ 100) |
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
Description
단위는 %이며, S-Curve 속도 프로파일 모드로 구동할 경우, 감속 시 최대 속도와 시작 속도 사이에서 S-Curve로 구동할 범위를 %로 설정한다.
예제 코드
// 0축의 저크 값 설정.
AxmMotSetAccelJerk(0, 20);
AxmMotSetDecelJerk(0, 20);
// 0의 저크 값 확인.
double dAccelJerk, dDecelJerk;
AxmMotGetAccelJerk(0, &dAccelJerk);
AxmMotGetDecelJerk(0, &dDecelJerk);
AxmMotGetDecelJerk
Purpose
지정 축의 설정된 감속 저크 값을 반환한다.
A 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 | O | O | O | O | O | O | 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 | O | O | O | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotGetDecelJerk(long lAxisNo, double *dpDecelJerk);
C#
uint AxmMotGetDecelJerk(int lAxisNo, ref double dpDecelJerk);
Visual Basic
Function AxmMotGetDecelJerk(ByVal lAxisNo As Long, ByRef dpDecelJerk As Double) As Long
Delphi
function AxmMotGetDecelJerk(lAxisNo : LongInt; dpDecelJerk : PDouble) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpDecelJerk | 감속 저크 값, 단위는 %( 0 ~ 100) |
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
Description
단위는 %이며, S-Curve 속도 프로파일 모드로 구동할 경우, 감속 시 최대 속도와 시작 속도 사이에서 S-Curve로 구동할 범위로 설정된 %값을 반환한다.
예제 코드
// 0축의 저크 값 설정.
AxmMotSetAccelJerk(0, 20);
AxmMotSetDecelJerk(0, 20);
// 0축의 저크 값 확인.
double dAccelJerk, dDecelJerk;
AxmMotGetAccelJerk(0, &dAccelJerk);
AxmMotGetDecelJerk(0, &dDecelJerk);
AxmMotSetScaleCoeff
Purpose
지정 축의 Scale Coefficient를 설정한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
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 | X | O | O | X | X | X | X | X | ||
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 | |||
X | X | X | X | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotSetScaleCoeff(long lAxisNo, long lScaleCoeff);
C#
uint AxmMotSetScaleCoeff(int lAxisNo, int lScaleCoeff);
Visual Basic
Function AxmMotSetScaleCoeff(ByVal lAxisNo As Long, ByVal lScaleCoeffAs Long) As Long
Delphi
function AxmMotSetScaleCoeff(lAxisNo : LongInt; lScaleCoeff: Long) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]lScaleCoeff | Scale Coefficient 설정 값 |
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
Description
Panasonic A4N 전용 함수로 지정 축의 Scale coefficient를 설정한다.
예제 코드
// 0축의 Scale Coefficient 설정.
double dScaleCoff;
dScaleCoff = 10;
AxmMotSetScaleCorff(0, dScaleCoff);
AxmMotGetScaleCoeff
Purpose
지정 축의 Scale Coefficient를 반환한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
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 | X | O | O | X | X | X | X | X | ||
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 | |||
X | X | X | X | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotGetScaleCoeff(long lAxisNo, long *lpScaleCoeff);
C#
uint AxmMotGetScaleCoeff(int lAxisNo, ref int lpScaleCoeff);
Visual Basic
Function AxmMotGetScaleCoeff(ByVal lAxisNo As Long, ByReflpScaleCoeffAs Long) As Long
Delphi
function AxmMotGetScaleCoeff(lAxisNo : LongInt; lpScaleCoeff: PLong) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]lpScaleCoeff | Scale Coefficient 설정 값 |
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
Description
Panasonic A4N 전용 함수로 지정 축의 Scale coefficient를 설정한다.
예제 코드
// 0축의 Scale Coefficient 값 반환.
double dpScaleCoff;
AxmMotGetScaleCorff(0, &dScaleCoff);
AxmMotSetElectricGearRatio
Purpose
지정 축의 전자기어비를 설정한다.(비휘발성 메모리에 저장하므로 사용시 주의 요망)
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | X | X | X | X | X | X | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotSetElectricGearRatio(long lAxisNo, long lNumerator, long lDenominator);
C#
uint AxmMotSetElectricGearRatio(int lAxisNo, int lNumerator, int lDenominator);
Visual Basic
Function AxmMotSetElectricGearRatio(ByVal lAxisNo As Long, ByVal lNumeratorAs Long, ByVal lDenominator As Long) As Long
Delphi
function AxmMotSetElectricGearRatio(lAxisNo : LongInt; lNumerator: Long; lDenominator: Long) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]lNumerator | 전자기어비 분자 항 설정 |
[in]lDenominator | 전자기어비 분모 항 설정 |
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
Description
- PCI-R1604-SIIIH의 MRJ4B Type 전용 함수로 지정 축의 전자기어비를 설정한다.
- 설정 후 비휘발성 메모리에 기억된다.
- 초기 Default 값은 Numerator : 4194304(2^22), Denominator : 10000 이며, 기존 펄스 입력 방식 서보드라이브(MRJ4A Type)의 PA06, PA07에 해당한다.
- 사용 시 주의할 점은 Master Board의 비휘발성 메모리에 저장하므로 계속 함수를 호출하여 GearRatio값을 쓰지 않도록 주의해야 한다.
EX) 1um를 제어 단위로 가정하고 감속기의 비율이 1:1일 때, Rotary Motor를 장착한 Linear Stage라 가정, Encoder Resolution = 2^22, Ball Screw Pitch : 6mm라 하면
이 때 Numerator는 2^22 → 4194304 가 되며, Denominator는 6000(6/0.001)이 된다. 만약 AxmMotSetMoveUnitPerPulse로 Unit/Pulse 를 1:1로 설정 했다면 모든 함수의 위치 단위는 um가 되며 속도 단위는 um/sec, 가속도 단위는 um/sec^2이 된다.
예제 코드
// 0축의 분자 항 2^22, 분모 항 10000 설정
long lNumerator, lDenomirator;
lNumerator = Pow(2, 22);
lDenomirator = 10000;
AxmMotSetElectricGearRatio(0, lNumerator, lDenomirator);
AxmMotGetElectricGearRatio
Purpose
지정 축의 전자기어비를 반환한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | X | X | X | X | X | X | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotGetElectricGearRatio(long lAxisNo, long *lpNumerator, long *lpDenominator);
C#
uint AxmMotGetElectricGearRatio(int lAxisNo, ref int lpNumerator, ref int lpDenominator);
Visual Basic
Function AxmMotGetElectricGearRatio(ByVal lAxisNo As Long, ByRef lpNumerator As Long, ByRef lpDenominator As Long) As Long
Delphi
function AxmMotGetElectricGearRatio(lAxisNo : LongInt; lpNumerator: PLong; lpDenominator: PLong) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]lpNumerator | 전자기어비 분자 항 반환 |
[out]lpDenominator | 전자기어비 분모 항 반환 |
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
Description
PCI-R1604-SIIIH의 MRJ4B Type 전용 함수로 지정 축의 전자기어비를 반환한다.
예제 코드
// 0축의 전자기어비 반환.
long lNumeratorValue, lDenominatorValue;
AxmMotGetElectricGearRatio(0, &lNumeratorValue, &lDenominatorValue);
AxmMotSetTorqueLimit
지정 축의 토크 리미트 값을 설정한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | O | X | X | X | X | X | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotSetTorqueLimit(long lAxisNo, double dPlusDirTorqueLimit, double dMinisDirTorqueLimit);
C#
uint AxmMotSetTorqueLimit(int lAxisNo, double dPlusDirTorqueLimit, double dMinisDirTorqueLimit);
Visual Basic
Function AxmMotSetTorqueLimit(ByVal lAxisNo As Long, ByVal dPlusDirTorqueLimitAs Double, ByVal dMinisDirTorqueLimitAs Double) As Long
Delphi
function AxmMotSetTorqueLimit(lAxisNo : LongInt; dPlusDirTorqueLimit: Double; dMinisDirTorqueLimit: Double) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dPlusDirTorqueLimit | 정방향 토크 제한 설정 |
[in]dMinisDirTorqueLimit | 역방향 토크 제한 설정 |
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
Description
- PCI-R1604-SIIIH의 MRJ4B Type 전용 함수로 지정 축의 토크 리미트 값을 설정한다.
- 설정 값은 1~1000까지 설정 가능하며, 최대 토크의 0.1% 단위로 제어한다.
예제 코드
// 0축의 정방향 토크 제한은 100%, 역방향 토크 제한은 50%로 설정한다.
double dPlusLimit, dMinusLimit;
dPlusLimit = 1000;
dMinusLimit = 500;
AxmMotSetTorqueLimit(0, dPlusLimit, dMinusLimit);
AxmMotGetTorqueLimit
지정 축의 토크 제한 값을 반환한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | O | X | X | X | X | X | X | X | X | ||
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 | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotGetTorqueLimit(long lAxisNo, double *dpPlusDirTorqueLimit, double *dpMinisDirTorqueLimit);
C#
uint AxmMotGetTorqueLimit(int lAxisNo, ref double dpPlusDirTorqueLimit, ref double dpMinisDirTorqueLimit);
Visual Basic
Function AxmMotGetTorqueLimit(ByVal lAxisNo As Long, ByRef dpPlusDirTorqueLimit As Double, ByRef dpMinisDirTorqueLimit As Double) As Long
Delphi
function AxmMotGetTorqueLimit(lAxisNo : LongInt; dpPlusDirTorqueLimit: PDouble; dpMinisDirTorqueLimit: PDouble) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dpPlusDirTorqueLimit | 정방향 토크 제한 값 |
[in]dpMinisDirTorqueLimit | 역방향 토크 제한 값 |
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
Description
PCI-R1604-SIIIH의 MRJ4B Type 전용 함수로 지정 축의 토크 제한 값을 반환한다.
예제 코드
// 0축의 토크 제한 값을 반환.
double dReturnPlusLimit, dReturnMinusLimit;
AxmMotSetTorqueLimit(0, &dReturnPlusLimit, &dReturnMinusLimit);
AxmMotSetTorqueLimitAtPos
지정 축의 특정한 위치에서 설정한 토크 리미트 값으로 변경되도록 설정한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | O | X | X | X | X | X | X | X | X | ||
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 | X | X | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotSetTorqueLimitAtPos(long lAxisNo, double dPluseDirTorqueLimit, double dMinusDirTorqueLimit, double dPosition, long lTarget);
C#
uint AxmMotSetTorqueLimitAtPos(int lAxisNo, double dPluseDirTorqueLimit, double dMinusDirTorqueLimit, double dPosition, long lTarget);
Visual Basic
Function AxmMotSetTorqueLimitAtPos(ByVal lAxisNo As Long, ByVal dPluseDirTorqueLimit As Double, ByVal dMinusDirTorqueLimit As Double, ByVal dPosition As Double, ByVal lTarget As Long) As Long
Delphi
function AxmMotSetTorqueLimitAtPos(lAxisNo: LongInt; dPluseDirTorqueLimit: Double; dMinusDirTorqueLimit: Double; dPosition: Double; lTarget: LongInt): DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]dPlusDirTorqueLimit | [1 ~ 3000(0.1% ~ 300%)] 정방향 구동 시 토크 리미트 설정 값 |
[in]dMinusDirTorqueLimit | [1 ~ 3000(0.1% ~ 300%)] 역방향 구동 시 토크 리미트 설정 값 |
[in]dPosition | 토크 리미트 값이 변경될 설정 위치 |
[in]lTarget | 대상 위치 입력 소스 선택-[0] 목표 위치(Cmd Pos)를 대상 위치값으로 사용-[1] 실제 위치(Act Pos)를 대상 위치값으로 사용 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[1053] AXT_RT_NOT_OPEN : AXL 라이브러리 초기화 실패
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 하드웨어
[4101] AXT_RT_MOTION_INVALID_AXIS_NO : 해당 축이 존재하지 않음
[4261] AXT_RT_HW_ACCESS_ERROR: 메모리 Read / Write 실패
* See error code Table for more information on status error codes
Description
- 정방향, 역방향 구동 중 설정 위치와 대상 위치가 같은 이벤트 발생 시, 지정 축을 설정한 토크 리미트 값으로 변경되도록 설정하는 함수이다.
- 정방향, 역방향 토크 리미트 설정 값은 1 ~ 3000(0.1% ~ 300.0%)까지 설정 가능하고, 이벤트 발생 시 설정 위치와 비교할 대상 위치는 목표 위치(Cmd Pos) 혹은 실제 위치(Act Pos)로 설정할 수 있다.
예제 코드
long lAxisNo = 0;
DWORD uUse = ENABLE;
double dPlusDirTorqueLimit = 3000;
double dMinusDirTorqueLimit = 3000;
double dPosition = 1000;
long lTarget = 0;
double dTorque = 50;
double dVel = 50;
double dpPos = 0;
long dReturnPlusLimit, dReturnMinusLimit;
//Step1. 0 축의 서보 드라이브를 On 시킨다.
AxmSignalServonOn(lAxisNo, uUse);
//Step2. 0축의 토크 리미트 값을 디폴트(3000)로 설정한다.
AxmMotSetTorqueLimit(lAxisNo, dPlusDirTorqueLimit, dMinusDirTorqueLimit);
//Step3. 0 축의 설정 위치 1000에서 정방향, 역방향 토크 리미트 값이 2000으로 변경되도록 설정하고, 대상 위치 정보를 목표 위치(Cmd Pos)로 설정한다.
dPlusDirTorqueLimit = 2000;
dMinusDirTorqueLimit = 2000;
AxmMotSetTorqueLimitAtPos(lAxisNo, dPlusDirTorqueLimit, dMinusDirTorqueLimit, dPosition, lTarget);
//Step4. 0축을 최대 출력의 50% 토크와 50%의 속도로 CW구동 한다.
AxmMoveStartTorque(lAxisNo, dTorque, dVel, 0, 0, 0);
//Step5. 0축의 목표 위치(Cmd Pos)가 설정 위치(1000)를 지나칠 때까지 대기한다.
While(dpPos < 1000)
{
AxmStatusGetCmdPos(lAxisNo, &dpPos);
}
//Step6. 0축의 토크 구동을 정지한다.
AxmMoveToqueStop(lAxisNo, 0);
AxmMotGetTorqueLimitAtPos
지정 축의 특정한 위치에서 변경되도록 설정한 토크 리미트 값을 확인한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | O | X | X | X | X | X | X | X | X | ||
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 | X | X | X | X | X | X | X | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
X | X | X | X |
Format
C++
DWORD AxmMotGetTorqueLimitAtPos(long lAxisNo, double* dpPlusDirTorqueLimit, double* dpMinusDirTorqueLimit, double* dpPosition, long* lpTarget);
C#
uint AxmMotGetTorqueLimitAtPos(int lAxisNo, ref double dpPlusDirTorqueLimit, ref double dpMinusDirTorqueLimit, ref double dpPosition, ref int lpTarget);
Visual Basic
Function AxmMotGetTorqueLimitAtPos(ByVal lAxisNo As Long, ByRef dpPlusDirTorqueLimit As Double, ByRef dpMinusDirTorqueLimit As Double, ByRef dpPosition As Double, ByRef lpTarget As Long) As Long
Delphi
function AxmMotGetTorqueLimitAtPos(lAxisNo: LongInt; dpPlusDirTorqueLimit: PDouble; dpMinusDirTorqueLimit: PDouble; dpPosition: PDouble; lpTarget: PLongInt;): DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]dpPlusDirTorqueLimit | [1 ~ 3000(0.1% ~ 300%)] 정방향 구동 시 토크 리미트 설정 값 |
[out]dpMinusDirTorqueLimit | [1 ~ 3000(0.1% ~ 300%)] 역방향 구동 시 토크 리미트 설정 값 |
[out]dpPosition | 토크 리미트 값이 변경될 설정 위치 |
[out]lpTarget | 대상 위치 입력 소스 선택-[0] 목표 위치(Cmd Pos)를 대상 위치값으로 사용-[1] 실제 위치(Act Pos)를 대상 위치값으로 사용 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[1053] AXT_RT_NOT_OPEN : AXL 라이브러리 초기화 실패
[1054] AXT_RT_NOT_SUPPORT_VERSION : 지원하지 않는 하드웨어
* See error code Table for more information on status error codes
Description
AxmMotSetTorqueLimitAtPos 함수로 지정 축의 특정한 위치에서 변경되도록 설정한 토크 리미트 값을 확인한다.
예제 코드
long lAxisNo = 0;
double dPlusDirTorqueLimit = 2000;
double dMinusDirTorqueLimit = 2000;
double dPosition = 1000;
long lTarget = 0;
double dpPlusDirTorqueLimit;
double dpMinusDirTorqueLimit;
double dpPosition;
long lpTarget;
DWORD uReturn = ERROR;
//Step1. 0 축의 설정 위치 1000에서 정방향, 역방향 토크 리미트 값이 2000으로 변경되도록 설정하고, 대상 위치 정보를 목표 위치(Cmd Pos)로 설정한다.
AxmMotSetTorqueLimitAtPos(lAxisNo, dPlusDirTorqueLimit, dMinusDirTorqueLimit, dPosition, lTarget);
//Step2. 0축을 토크 리미트 값이 설정 위치(1000)에서 설정한 값(2000)과 설정된 대상 위치(Cmd Pos)로 변경되었는지 확인한다.
AxmMotGetTorqueLimitAtPos (lAxisNo, &dpPlusDirTorqueLimit, &dpMinusDirTorqueLimit, &dpPosition, &lpTarget);
AxmMotSetMultiTorqueLimit
지정된 축의 Position 범위마다 TorqueLimit을 설정한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | X | X | X | X | X | X | X | X | X | ||
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 | |||
X | X | X | X | X | X | X | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotSetMultiTorqueLimit(long lAxisNo, long lSize, double* dpPosition, double* dpPlusTorqueLimit, double* dpMinusTorqueLimit, long lTarget);
C#
uint AxmMotSetMultiTorqueLimit(int nAxisNo, int nSize, ref double dpPosition, ref double dpPlusTorqueLimit, ref double dpMinusTorqueLimit, int nTarget);
Visual Basic
Function AxmMotSetMultiTorqueLimit(ByVal lAxisNo As Integer, ByVal lSize As Integer, ByRef dpPosition As Double, ByRef dpPlusTorqueLimit As Double, ByRef dpMinusTorqueLimit As Double, ByVal lTarget As Integer) As Integer
Delphi
function AxmMotSetMultiTorqueLimit(lAxisNo : LongInt; lSize: LongInt; dpPosition: PDouble; dpPlusTorqueLimit: PDouble; dpMinusTorqueLimit: PDouble; lTarget: LongInt) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]lSize | 설정할 위치의 개수(2개 이상) |
[in]dpPosition | 위치(오름차순으로 입력해야 함) |
[in]dpPlusTorqueLimit | 토크 제한율(천분율, lSize - 1) |
[in]dpMinusTorqueLimit | Reserved |
[in]lTarget | CRC 신호를 Program으로 발생 여부: AXT_MOTION_SELECTION_DEF- [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
Description
- 지정한 Position의 범위를 기준으로 Torque Limit을 설정한다.
- 위치의 개수는 2개 이상이어야 하며 오름차순으로 기입한다.
- 지정한 위치 사이의 토크 제한율은 천분율로 기입한다.
- 토크 제한은 정격 토크를 기준으로 설정된다.
- 따라서 정격 토크가 100이라고 하였을 때 토크 제한율을 10으로 기입하면 토크 제한값은 1이다.
- 목표 위치 기준과 실제 위치 기준으로 설정할 수 있다.
- 실제 위치는 계속 진동을 하고 있다.
- 따라서 실제 위치값이 토크 제한의 변경점에 위치할 경우에는 제한 토크값이 계속 변경되는 경우가 발생한다.
- 이럴 경우 오작동의 우려가 있으므로 목표 위치를 기준으로 설정하는 것을 추천한다.
- 아래 그림은 한 축에 대해서 토크 제한이 적용되는 방식에 대한 내용이다.
- AxmMotMultiTorqueLimitEnable을 사용하여 활성화해야 적용된다.

예제 코드
// 1번 축에 Torque Limit을 설정한다.
long lAxisNo = 1, lSize = 3, lTarget = 0;
double dPosition[3], dPlusTorqueLimit[2], dMinusTorqueLimit[2];
dPosition[0] = 0;
dPosition[1] = 100;
dPosition[2] = 200;
dPlusTorqueLimit[0] = 1;
dPlusTorqueLimit[1] = 2;
dMinusTorqueLimit[0] = 0;
dMinusTorqueLimit[1] = 0;
AxmMotSetMultiTorqueLimit(lAxisNo, lSize, dPosition, dPlusTorqueLimit, dMinusTorqueLimit, lTarget);
AxmMotMultiTorqueLimitEnable
지정된 축의 Position 범위마다 TorqueLimit을 설정한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | X | X | X | X | X | X | X | X | X | ||
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 | |||
X | X | X | X | X | X | X | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotMultiTorqueLimitEnable(long lAxisNo, DWORD uEnable);
C#
uint AxmMotMultiTorqueLimitEnable(int nAxisNo, uint uEnable);
Visual Basic
Function AxmMotMultiTorqueLimitEnable(ByVal lAxisNo As Integer, ByVal uEnable As Integer) As Integer
Delphi
function AxmMotMultiTorqueLimitEnable(lAxisNo: LongInt; uEnable: DWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[in]uEnable | [00h]TorqueLimit 설정 여부 : FALSE & TRUE- [00h] TorqueLimit 사용 안 함- [01h] TorqueLimit 사용함 |
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
Description
지정된 축의 Multi TorqueLimit을 활성화/비활성화 한다.
예제 코드
// 1번 축에 Torque Limit을 설정한다.
long lAxisNo = 1, lSize = 3, lTarget = 0;
double dPosition[3], dPlusTorqueLimit[2], dMinusTorqueLimit[2];
DWORD uEnable = 1;
dPosition[0] = 0;
dPosition[1] = 100;
dPosition[2] = 200;
dPlusTorqueLimit[0] = 1;
dPlusTorqueLimit[1] = 2;
dMinusTorqueLimit[0] = 0
dMinusTorqueLimit[1] = 0;
AxmMotSetMultiTorqueLimit(lAxisNo, lSize, dPosition, dPlusTorqueLimit, dMinusTorqueLimit, lTarget);
// 1번 축의 Torque Limit을 활성화한다.
AxmMotMultiTorqueLimitEnable(lAxisNo, uEnable);
AxmMotMultiTorqueLimitIsEnable
지정된 축의 Position 범위마다 TorqueLimit을 설정한다.
A Serviceable Product
BPHR / BPFR | BEHR / BEFR | PCI-Nx04 | PCIe-Nx04 | ||||||||
---|---|---|---|---|---|---|---|---|---|---|---|
X | X | X | X | ||||||||
PCI-Rxx04 | PCIe-Rxx04-RTEX | PCI-Rxx04-MLII | PCI-Rxx00-MLIII | ||||||||
A4N | A5N/A6N | PM | A4N | A5N/A6N | PM | SGDV | SGDV | SGD7 | PM | ||
X | X | X | X | X | X | X | X | X | X | ||
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 | |||
X | X | X | X | X | X | X | O | O | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
O | O | O | O |
Format
C++
DWORD AxmMotMultiTorqueLimitIsEnable(long lAxisNo, DWORD* upEnable);
C#
uint AxmMotMultiTorqueLimitIsEnable(int nAxisNo, ref uint upEnable);
Visual Basic
Function AxmMotMultiTorqueLimitIsEnable(ByVal lAxisNo As Integer, upEnable As Integer) As Integer
Delphi
function AxmMotMultiTorqueLimitIsEnable(lAxisNo : LongInt; upEnable: PDWord) : DWord; stdcall;
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 - 1)) |
[out]upEnable | [00h]TorqueLimit 설정 여부 : FALSE & TRUE- [00h] TorqueLimit 사용 안 함- [01h] TorqueLimit 사용함 |
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
Description
Multi TorqueLimit의 활성화/비활성화 상태를 확인한다.
예제 코드
// 1번 축의 Multi TorqueLimit의 활성화/비활성화 상태를 확인한다.
long lAxisNo = 1;
DWORD uEnable;
AxmMotMultiTorqueLimitIsEnable(lAxisNo, &uEnable);