IMotionDevice
모션 제어 장치 드라이버를 위한 인터페이스입니다. 서보 모터와 액추에이터를 제어하는 메서드를 제공합니다.
네임스페이스: DeviceBase
상속
이 인터페이스는 IDevice를 확장합니다.
메서드
Enable
모션 채널을 활성화하거나 비활성화합니다.
void Enable(int channel, bool value);
매개변수:
channel— 채널 번호입니다.value— 활성화하려면true, 비활성화하려면false입니다.
IsEnabled
모션 채널이 활성화되어 있는지 확인합니다.
bool IsEnabled(int channel);
매개변수:
channel— 채널 번호입니다.
반환값: 활성화되어 있으면 true, 비활성화되어 있으면 false입니다.
TrapezoidalMove
사다리꼴 모션 프로파일 이동을 실행합니다.
void TrapezoidalMove(
int channel,
int position,
int velocity,
int acceleration,
int deceleration
);
매개변수:
channel— 채널 번호입니다.position— 장치 단위의 목표 위치입니다.velocity— 장치 단위/초의 최대 속도입니다.acceleration— 장치 단위/초²의 가속도입니다.deceleration— 장치 단위/초²의 감속도입니다.
Wait (오버로드 1)
채널에서 모션이 완료될 때까지 대기합니다(타임아웃 없음).
void Wait(int channel);
매개변수:
channel— 채널 번호입니다.
Wait (오버로드 2)
타임아웃을 사용하여 채널에서 모션이 완료될 때까지 대기합니다.
void Wait(int channel, int timeout);
매개변수:
channel— 채널 번호입니다.timeout— 밀리초 단위의 최대 대기 시간입니다.
IsMoving
채널이 현재 이동 중인지 확인합니다.
bool IsMoving(int channel);
매개변수:
channel— 채널 번호입니다.
반환값: 채널이 이동 중이면 true, 정지 상태이면 false입니다.
SetCommandPosition
채널의 명령 위치를 설정합니다.
void SetCommandPosition(double position);
매개변수:
position— 명령 위치 값입니다.
SetActualPosition
채널의 실제 위치를 설정합니다(일반적으로 홈 설정이나 교정에 사용됩니다).
void SetActualPosition(double position);
매개변수:
position— 실제 위치 값입니다.
사용 예시
IMotionDevice motionDevice = ...;
// 장치 초기화
motionDevice.Init(config);
// 모터 활성화
motionDevice.Enable(0, true);
// 활성화 확인
if (motionDevice.IsEnabled(0))
{
// 사다리꼴 프로파일로 이동 실행
motionDevice.TrapezoidalMove(
channel: 0,
position: 10000,
velocity: 5000,
acceleration: 10000,
deceleration: 10000
);
// 모션 완료 대기 (5초 타임아웃)
motionDevice.Wait(0, 5000);
// 여전히 이동 중인지 확인
bool moving = motionDevice.IsMoving(0);
}
// 완료 시 비활성화
motionDevice.Enable(0, false);
// 정리
motionDevice.Dispose();
참고사항
- 모션 명령을 실행하기 전에 채널을 활성화해야 합니다.
- 사다리꼴 모션 프로파일은 부드러운 가속과 감속을 제공합니다.
- 위치, 속도, 가속도 및 감속도 값은 장치별 단위입니다.
- 모션 오류 시 무한 차단을 방지하기 위해 타임아웃과 함께
Wait를 사용하세요.