MPG (Manual Pulse Generator) 구동
개요
EXPP, EXMP 신호로 입력된 펄스 개수와 설정된 배율에 의해 결정된 이동거리를 지정된 주파수로 펄스를 출력하는 기능이다.
Note) MPG 구동 기능은 펄스 출력형 모션 제어기(PCI-N804/404, RTEX-PM)에서만 사용할 수 있는 기능이다.
MPG 외부와의 인터페이스
EXPP, EXMP 신호를 통해는 모션 제어기와 외부 로터리 인코더가 연결되며, 최대 1.2MHz 신호를 입력받을 수 있는 고속 포토커플러가 사용되었다. 입력 펄스 형태는 인코더 인터페이스와 동일한 형태로 아래와 같다.
입력 펄스 형태
Note) PCI-N804/404의 경우 MPG 입력 신호는 각 축에 독립적으로 입력되는 것이 아니고 두 축이 공동으로 사용하는데, 0축에 입력되는 MPG 신호는 2축, 1축에 입력되는 MPG 신호는 3축, 4축에 입력되는 MPG 신호는 6축, 5축에 입력되는 MPG 신호는 7축에서 공통으로 사용한다. 즉 2/3/6/7축과 연결되는 외부 컨넥트 J2/J4의 MPG 신호 입력 핀은 사용되지 않는다.
EXPP/EXMP 신호의 확인
EXPP / EXMP 신호의 현재 상태를 확인하기 위해서 따로 준비되어 있는 함수는 없으나, Mechanical Signal의 8번과 9번 비트가
각각 EXMP와 EXPP로 연결되어 있으므로 이를 통해 현재 상태를 확인할 수 있다.
Mechanical Signal을 확인하기 위해서는 AxmStatusReadMechanical 함수를 사용하며, 이를 비트 연산하여 다음과 같이 EXPP와 EXMP를 확인한다.
// PCI-N804/404에서 EXPP / EXMP 신호를 확인한다.
AxmStatusReadMechanical(AXIS_0, &MechanicalStatus);
if(MechanicalStatus & QIMECHANICAL_EXMP_LEVEL) { bExmp = 1; } else { bExmp = 0; }
if(MechanicalStatus &QIMECHANICAL_EXPP_LEVEL) { bExpp = 1; } else { bExpp = 0; }
printf("\rEXPP : %x , EXMP : %x ",bExpp,bExmp);
QIMECHANICAL_EXMP_LEVEL, QIMECHANICAL_EXPP_LEVEL은 PCI-N804/404의 MechanicalStatus의 비트 11, 비트 12를 의미한다
MPG 구동 함수의 사용
MPG 구동을 Set하면 그때부터 자동으로 EXPP핀과 EXMP핀에 신호가 들어오는 것에 따라 구동된다. 위치 구동 모드로 사용하기 위해서는 아래와 같이 설정한다.
//0축을 위치 구동 모드로 입력된 펄스당 10만큼씩 이동되도록 설정
AxmMPGSetRatio(0, 10, 4096 );
AxmMPGSetEnable(0, MPG_DIFF_ONE_PHASE, 0, 10, 200, 400);
// 0축의 Mpg 신호의 설정을 반환한다.
long lpInputMethod, lpDriveMode;
double dpVel, dpAccel, dpDecel, dpMPGPos;
double dMPGdenominator, dMPGnumerator;
AxmMPGGetEnable(0, &lpInputMethod, & lpDriveMode, &dpMPGPos, & dpVel);
AxmMPGGetRatio(0, &dMPGnumerator, &dMPGdenominator);
여기서 dMPGdenominator = 4096, MPGnumerator=1 가 의미하는 것은 MPG 한바퀴에 200펄스면 그대로 1:1로 1펄스씩 출력함을 의미한다. 만약 dMPGdenominator = 4096, MPGnumerator=2 로 했을 경우는 1:2로 2펄스씩 출력을 내보낸다는 의미이다.
여기에 MPG PULSE = ((Numerator) * (Denominator) / 4096) 칩 내부에 출력되는 계산 식이다.
MPG 구동을 해제하고자 한다면 다음과 같이 한다.
// Ex17_AXM_QIMPG.cpp : Defines the entry point for the console application.
// MPG 구동을 한다.
#include "stdafx.h"
#include "AXL.h"
#include <conio.h>
#include "stdio.h"
#define AXIS_0 0
void main(void)
{
// 라이브러리를 초기화한다.
// 7은 IRQ를 뜻한다. PCI에서 자동으로 IRQ가 설정된다.
DWORD Code = AxlOpen(7);
if (Code == AXT_RT_SUCCESS)
{
printf("라이브러리가 초기화되었습니다.\n");
//모션 모듈이 있는지 검사
DWORD uStatus;
Code = AxmInfoIsMotionModule(&uStatus);
if(Code == AXT_RT_SUCCESS)
{
if(uStatus == STATUS_EXIST)
{
printf("모션모듈이존재합니다.\n");
// 0축의 +End limit 과 -End limit 의 Active level 을 HIGH로 설정한다.
AxmSignalSetLimit(AXIS_0, 0, HIGH, HIGH);
// 0축의 Inpositon 신호의 입력 레벨을 HIGH로 설정한다.
AxmSignalSetInpos(AXIS_0, HIGH);
// 0축의 알람 신호의 입력 레벨을 LOW로 설정한다.
AxmSignalSetServoAlarm(AXIS_0, LOW);
// 0축의 비상 정지 신호(ESTOP)의 Active 입력 레벨을 HIGH로 설정한다.
AxmSignalSetStop(AXIS_0, 0, HIGH);
//0축 지령 값을 mm 단위가 되도록 한다.
AxmMotSetMoveUnitPerPulse(AXIS_0, 10, 10000);
//0축의 초기 속도를 1로 설정한다. Default : 1
AxmMotSetMinVel(AXIS_0, 1);
//0축의 펄스 출력 방식을 TwoCwCcwHigh로 한다.
AxmMotSetPulseOutMethod(AXIS_0, TwoCcwCwHigh);
//지정 축에 Encoder 입력 방식을 4체배로 설정한다.
AxmMotSetEncInputMethod(AXIS_0, ObverseSqr4Mode);
//상대 위치 S자 속도 프로파일을 사용
AxmMotSetAbsRelMode(AXIS_0, 1);
AxmMotSetProfileMode(AXIS_0, 3);
//Servo On
AxmSignalServoOn(AXIS_0, ENABLE);
// help Message
printf("[INFORMATION]*********************************** \n");
printf("[ESC] : Exit. \n");
printf("[1] : MPG_POS_DRV. \n");
printf("[2] : MPG_CONTI_DRV. \n");
printf("************************************************ \n");
BOOL fExit = FALSE;
DWORD MechanicalStatus;
BOOL bExmp, bExpp;
double dVelocity = 2000; //속도 사용 설정 값
double dAccel = 4000; //가속도 사용 설정 값
double dDecel = 4000; //감속도 사용 설정 값
long lInputMethod;
long lDriveMode;
long lDirMode =0; //PCI-N804/404에서 사용 안 함
long lUserDir =0; //PCI-N804/404에서 사용 안 함
double dMPGPosition = 10; // MPG_PRESET_MODE 모드일 경우 이동 거리
double dMPGdenominator = 4095;
// MPG(수동 펄스 발생 장치 입력)구동 시 나누기 값(입력값에 +1로 계산됨)
double dMPGnumerator = 0;
// MPG(수동 펄스 발생 장치 입력)구동 시 곱하기 값(입력값에 +1로 계산됨)
while (!fExit) // 무한 루프
{
if (kbhit()) // 아무 키나 누르면
{
int ch = getch();
switch (ch)
{
case 27: // Esc key
fExit = TRUE;
AxmMPGReset(AXIS_0); // MPG 구동을 종료한다.
AxmSignalServoOn(AXIS_0, DISABLE); //Servo Off
break;
case '1':
//MPG 구동을 종료한다.
AxmMPGReset(AXIS_0);
printf("\nMPG_PRESET_MODE로 MPG구동을시작한다.\n");
lInputMethod= 0; //입력 신호 방식 MPG_DIFF_ONE_PHASE (0)
lDriveMode= 1; // MPG_CONTI_DRV (0), MPG_POS_DRV (1)
// MPG_ABS_COMMAND_POS(2), MPG_ABS_ACTUAL_POS(3),
// MPG_ABS_COMMAND_ZERO(4), MPG_ABS_ACTUAL_ZERO(5)
AxmMPGSetRatio(AXIS_0, dMPGnumerator, dMPGdenominator );
AxmMPGSetEnable(AXIS_0,lInputMethod,lDriveMode,dMPGPosition, dVelocity, dAccel);
break;
case '2':
//MPG 구동을 종료한다.
AxmMPGReset(AXIS_0);
printf("\nMPG_CONT_MODE로 MPG 구동을 시작한다.\n");
lInputMethod = 4;
//입력신호방식 MPG_LEVEL_ONE_PHASE(4)
lDriveMode= 0; // MPG_CONTI_DRV (0), MPG_POS_DRV (1)
// MPG_ABS_COMMAND_POS(2), MPG_ABS_ACTUAL_POS(3),
// MPG_ABS_COMMAND_ZERO(4),MPG_ABS_ACTUAL_ZERO(5)
AxmMPGSetEnable(AXIS_0, lInputMethod, lDriveMode,dMPGPosition, dVelocity, dAccel);
AxmMPGSetRatio(AXIS_0, dMPGnumerator, dMPGdenominator );
break;
}
}
AxmStatusReadMechanical(AXIS_0, &MechanicalStatus);
if(MechanicalStatus &QIMECHANICAL_EXMP_LEVEL) { bExmp = 1; }
else { bExmp = 0; }
if(MechanicalStatus &QIMECHANICAL_EXPP_LEVEL) { bExpp = 1; }
else { bExpp = 0; }
printf("\rEXPP : %x , EXMP : %x ",bExpp,bExmp);
} //End of While()
}
else
printf ("AxmInfoIsMotionModule() : ERROR ( NOT STATUS_EXIST ) code 0x%x\n",Code);
}
else
printf ("AxmInfoIsMotionModule() : ERROR ( Return FALSE ) code 0x%x\n",Code);
}
else
printf ("AxlOpen() : ERROR code 0x%x\n",Code);
// 라이브러리를 종료한다.
if (AxlClose())
printf("라이브러리가 종료되었습니다.\n");
else
printf("라이브러리가 정상적으로 종료되지 않았습니다.\n");
}
MPG 구동 함수
Function | Description |
---|---|
AxmMPGSetEnable | 지정 축에 MPG 입력 방식, 드라이브 구동 모드, 이동 거리, 속도 등을 설정한다. |
AxmMPGGetEnable | 지정 축에 MPG 입력 방식, 드라이브 구동 모드, 이동 거리, 속도 등을 반환한다. |
AxmMPGSetRatio | 지정 축에 MPG 드라이브 구동 모드에서 한 펄스당 이동할 펄스 비율을 설정한다. |
AxmMPGGetRatio | 지정 축에 MPG 드라이브 구동 모드에서 한 펄스당 이동할 펄스 비율을 반환한다. |
AxmMPGReset | 지정 축에 MPG 드라이브 설정을 해제한다. |
AxmMPGSetEnable
Purpose
지정 축에 MPG 입력 방식, 드라이브 구동 모드, 이동 거리 , 이동 속도 등을 설정한다.
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 | ||
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 | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
Format
C++
DWORD AxmMPGSetEnable(long lAxisNo, long lInputMethod, long lDriveMode, double dMPGPos, double dVel, double dAccel);
C#
uint AxmMPGSetEnable(int lAxisNo, int lInputMethod, int lDriveMode, double dMPGPos, double dVel, double dAccel);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 – 1)) |
[in]lInputMethod | 입력 신호 방식: AXT_MOTION_MPG_INPUT_METHOD- [00h] MPG 입력 방식 One Phase- [01h] 지원하지 않음.- [02h] MPG 입력 방식 TwoPhase2- [03h] MPG 입력 방식 TwoPhase4 |
[in]lDriveMode | Mpg 동작 모드- [00h] MPG 연속 모드 |
[in]dMPGPos | MPG_PRESET_MODE 모드일 경우 이동 거리 |
[in]dVel | Mpg 속도 |
[in]dAccel | Reserved |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO : 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO : 해당 축이 존재하지 않음
Description
지정 축에 MPG 드라이브 지정 펄스 구동 모드에서 사용할 이동 거리, 구동 모드 및 구동 방향 등을 설정한다.
여기서 dMPGdenominator = 4095, MPGnumerator=0 가 의미하는 것은 MPG 한 바퀴에 200 펄스면 그대로 1:1 로 1 펄스씩 출력함을 의미한다.
만약 dMPGdenominator = 4095, MPGnumerator=1 로 했을 경우에는 1:2 로 2 펄스씩 출력을 내보낸다는 의미이다.
여기에 MPG PULSE = ( (Numerator ) * (Denominator )/ 4096 ) 칩 내부에 출력이 나가는 계산 식이다.
주의 사항
AxmMPGSetEnable 수행 후 AxmMPGReset 하기 전까지 정상 상태에서는 모션 구동 중 상태(AxmStatusReadInMotion 함수로 확인)
예제 코드
// 0축에 Mpg 신호를 설정한다.
AxmMPGSetEnable(0, MPG_DIFF_ONE_PHASE, 0, 10, 50, 200);
AxmMPGSetRatio(0, 1, 4096 );
// 0축의 Mpg 신호 설정을 반환한다.
long lpInputMethod, lpDriveMode;
double dpVel, dpAccel, dpDecel, dpMPGPos, dMPGdenominator, dMPGnumerator, dVel, dAccel;
AxmMPGGetEnable(0, &lpInputMethod, &lpDriveMode, &dpMPGPos, &dVel, &dAccel);
AxmMPGGetRatio(0, &dMPGnumerator, &dMPGdenominator);
AxmMPGGetEnable
Purpose
지정 축의 MPG 입력 방식, 드라이브 구동 모드, 이동 거리 등을 반환한다.
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 | ||
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 | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
Format
C++
DWORD AxmMPGGetEnable(long lAxisNo, long *lpInputMethod, long *lpDriveMode, double *dpMPGPos , double *dpVel, double *dpAccel);
C#
uint AxmMPGGetEnable(int lAxisNo, ref int lpInputMethod, ref int lpDriveMode, ref double dpMPGPos, ref double dpVel, ref double dpAccel);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 – 1)) |
[out]lpInputMethod | 입력 신호 방식 |
[out]lpDriveMode | Mpg 동작 모드 |
[out]dpMPGPos | MPG_PRESET_MODE 모드일 경우 이동 거리 |
[out]dpVel | 속도 |
[out]dpAccel | Reserved |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO : 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO : 해당 축이 존재하지 않음
Description
AxmMPGSetEnable로 설정된 지정 축의 MPG 입력 방식, 드라이브 구동 모드, 이동 거리 등을 반환한다.
예제 코드
// 0축의 Mpg 신호를 설정한다.
AxmMPGSetEnable (0, MPG_DIFF_ONE_PHASE, 0, 10, 50, 200);
AxmMPGSetRatio(0, 1, 4096 );
// 0축의 Mpg 신호 설정을 반환한다.
long lpInputMethod, lpDriveMode;
double dpVel, dpAccel, dpDecel, dpMPGPos;
double dMPGdenominator, dMPGnumerator, dVel, dAccel;
AxmMPGGetEnable(0, &lpInputMethod, & lpDriveMode, &dpMPGPos, &dVel, &dAccel);
AxmMPGGetRatio(0, &dMPGnumerator, &dMPGdenominator);
AxmMPGSetRatio
Purpose
지정 축에 MPG 드라이브 구동 모드에서 한 펄스당 이동할 펄스 비율을 설정한다.
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 | ||
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 | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
Format
C++
DWORD AxmMPGSetRatio(long lAxisNo, double dMPGnumerator, double dMPGdenominator);
C#
uint AxmMPGSetRatio(int lAxisNo, double dMPGnumerator, double dMPGdenominator);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 – 1)) |
[in]dMPGnumerator | 수동 펄스 발생 장치 입력 구동 시 곱하기 값(입력값 계산됨)을 최대 0 에서 64까지 설정 가능MPG PULSE = (uNumerator )* (uDenominator)/ 4096 |
[in]dMPGdenominator | (수동 펄스 발생 장치 입력)구동 시 나누기 값(입력값 계산됨)을 최대 0 에서 4096까지 설정 가능 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO : 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO : 해당 축이 존재하지 않음
Description
지정 축에 MPG 드라이브 지정 펄스 구동 모드에서 사용할 이동 거리, 구동 모드 및 구동 방향 등을 설정한다.
여기서 dMPGdenominator = 4096, MPGnumerator=1 의미하는 것은 MPG 한 바퀴에 200 펄스면 그대로 1:1 로 1 펄스씩 출력함을 의미한다.
만약 dMPGdenominator = 4096, MPGnumerator = 2 로 했을 경우에는 1:2 로 2 펄스씩 출력을 내보낸다는 의미이다.
여기에 MPG PULSE = ( (Numerator ) * (Denominator )/ 4096 ) 칩 내부에 출력이 나가는 계산 식이다.
예제 코드
// 0축의 Mpg 신호를 설정한다.
AxmMPGSetEnable(0, MPG_DIFF_ONE_PHASE, 1, 10, 50, 200);
AxmMPGSetRatio(0, 1, 4096 );
// 0축의 Mpg 신호를 설정을 반환한다.
long lpInputMethod, lpDriveMode;
double dpVel, dpAccel, dpDecel, dpMPGPos;
double dMPGdenominator, dMPGnumerator, dVel, dAccel;
AxmMPGGetEnable(0, &lpInputMethod, &lpDriveMode, &dpMPGPos, &dVel, &dAccel);
AxmMPGGetRatio(0, &dMPGnumerator, &dMPGdenominator);
AxmMPGGetRatio
Purpose
지정 축의 MPG 드라이브 구동 모드에서 한 펄스당 이동할 펄스 비율을 반환한다.
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 | ||
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 | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
Format
C++
DWORD AxmMPGGetRatio(long lAxisNo, DWORD *upMPGnumerator, DWORD *upMPGdenominator);
C#
uint AxmMPGGetRatio(int lAxisNo, ref double upMPGnumerator, ref double upMPGdenominator);
Parameters
[in/out] Name | [Init Value] Explanation |
---|---|
[in]lAxisNo | 채널(축) 번호(0 ~ (최대 축 수 – 1)) |
[out]upMPGnumerator | 수동 펄스 발생 장치 입력 구동 시 곱하기 값(입력값 계산됨)을 최대 0 에서 64까지 설정 가능MPG PULSE = (uNumerator )* (uDenominator)/ 4096 |
[out]upMPGdenominator | (수동 펄스 발생 장치 입력)구동 시 나누기 값(입력값 계산됨)을 최대 0에서 4096까지 설정 가능 |
Return Values
[0000] AXT_RT_SUCCESS : 함수 실행 성공
[4053] AXT_RT_MOTION_NOT_INITIAL_AXIS_NO : 해당 축 모션 초기화 실패
[4101] AXT_RT_MOTION_INVALID_AXIS_NO : 해당 축이 존재하지 않음
Description
AxmMPGSetRatio로 설정된 지정 축에 MPG 구동 모드에서 한 펄스당 이동할 펄스 비율을 반환한다.
예제 코드
// 0축에 Mpg 신호를 설정한다.
AxmMPGSetEnable(0, MPG_DIFF_ONE_PHASE, 1, 10, 50, 200);
AxmMPGSetRatio(0, 1, 4096 );
// 0축의 Mpg 신호 설정을 반환한다.
long lpInputMethod, lpDriveMode;
double dpVel, dpAccel, dpDecel, dpMPGPos;
double dMPGdenominator, dMPGnumerator, dVel, dAccel;
AxmMPGGetEnable(0, &lpInputMethod, & lpDriveMode, &dpMPGPos, &dVel, &dAccel);
AxmMPGGetRatio(0, &dMPGnumerator, &dMPGdenominator);
AxmMPGReset
Purpose
지정 축의 MPG 드라이브 설정을 해제한다.
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 | ||
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 | |||
PCIe-Rxx05-ECAT | PCIe-Rxx05-ECAT-E | ||||||||||
Servo | PM | Servo | PM | ||||||||
Format
C++
DWORD AxmMPGReset(long lAxisNo);
C#
uint AxmMPGReset(int lAxisNo);
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 : 해당 축이 존재하지 않음
Description
AxmMPGSetEnable로 설정된 지정 축의 MPG 드라이브 지정 펄스 구동 모드에서 사용할 이동 거리, 구동 모드 및 구동 방향 등 MPG 드라이브 설정을 해제한다.
예제 코드
// 0축의 MPG 드라이브 설정을 해제한다.
AxmMPGReset(0);