12.1.2. ecmMxMot_MoveToStart¶
Hint
FAST FUNCTION 모드 사용 가능
SYNOPSIS¶
t_cmdidx ecmMxMot_MoveToStart(_FF)(
t_i32 NetID,
t_i32 NumAxes,
t_i32 AxisList[],
t_i32 PosList[],
t_i32 *ErrCode
)
DESCRIPTION¶
여러 개의 축에 대하여 현재의 위치에서 지정한 거리만큼 이동을 동시에 시작합니다. 이 함수를 사용하면 여러 개의 축이 동시에 작업을 시작합니다.
PARAMETER¶
NetID : Network 번호
NumAxes : 동시에 작업을 수행할 대상 축 개수
AxisList: 동시에 작업을 수행할 대상 축 배열 주소값. 이 배열의 크기는 NumAxes값과 일치하거나 커야 합니다.
PosList : 절대좌표값의 배열 주소값. 이 배열의 크기는 NumAxes값과 일치하거나 커야 합니다. 절대좌표의 단위는 논리적 거리 단위를 사용합니다.단위는 논리적 거리 단위를 사용합니다.
ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.
RETURN VALUE¶
이 리턴값은 함수의 cmdidx가 반환됩니다.
EXAMPLE¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | //본 예제는 ecmMxMot_MoveStart사용하여 두 축을 절대 좌표5000으로 이동하는 예 입니다.
#include "ComiEcatSdk_Api.h"
#define AXIS0 0
#define AXIS1 1
t_32 Error_Num = 0;//함수 별 에러 코드 저장 변수
/***************************************************************
* 프로그램 앞 부분은 생략 -> ecmMxMot_MoveStart 예제 참고
***************************************************************/
/***************************************************************
* DO_MOVETo : 작업 명령 시에 호출되는 가상의 함수 입니다.
*cmsSetCfgSetSpeedPattern으로 설정된 두개의 축(Axis)의 속도모드를
*그대로 유지 하면서 절대 좌표 +5000으로 이동
***************************************************************/
void DO_MOVETo()
{
//cmsSetCfgSetSpeedPattern으로 설정된 첫번째 축(Axis)의 속도모드를
//그대로 유지 하면서 두 축을 상대 위치 만큼 +5000 이동
t_i32 AxisList[2] = {0,1};
t_f64 PosList[2] = {5000,5000};
ecmMxMot_MoveToStart(Device_Info.NetIdx, 2, AxisList, PosList, &Error_Num);
//Move 두 축을 각각 절대 좌표 5000으로 이동
if(!ecmMxSt_WaitCompt (Device_Info.NetIdx, 2, AxisList, &Error_Num)){
//두 축이 절대 좌표 5000으로 이동 되는 동안 블로킹하는 함수
// 모션 완료 대기 실패 예외 처리
return;
}
}
|