13.1.28. ecmIxMot_LineStart

Hint

FAST FUNCTION 모드 사용 가능

SYNOPSIS

t_cmdidx  ecmIxMot_LineStart(_FF)(
  t_i32  NetID,
  t_i32  MapIndex,
  t_f64  DistList[],
  t_i32  *ErrCode
)

DESCRIPTION

  • 현재 위치로부터의 상대 좌표로의 직선 보간 이동을 수행합니다.

  • ecmIxMot_LineStart(_FF) 는 모션을 시작시킨 후에 바로 반환됩니다.

PARAMETER

  • NetID : Network 번호

  • MapIndex : 맵 번호

  • DistList : 현재 위치로부터의 상대적인 이동 좌표값(각 축의 이동 거리값)의 배열 주소. 이 배열의 크기는 맵핑된 축의 수와 일치하여야 합니다.거리의 단위는 논리적 거리를 적용합니다.

  • 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include "ComiEcatSdk_Api.h"

#define AXISX          0
#define AXISY          1

#define MAP0           0

t_32 Error_Num =  0;//함수 별  에러 코드 저장 변수

/***************************************************************
* OnProgramInitial : 이 함수는 가상의 함수로서 프로그램 초기화 루틴이
* 적용되는 부분을 의미합니다.
***************************************************************/
void OnProgramInitial()
{
       TEcDevInfo Device_Info;  //디바이스 정보 저장 할 구조체
       t_i32 Device_Num = 0;

       t_success nIsLoaded = ecDll_Load ();

       if(!ecGn_LoadDevices(&Error_Num)){   //장치 로드
               //로드 실패시 예외  처리
       }

       if(!ecGn_GetDevInfo(Device_Num,&Device_Info, &Error_Num)){
               //디바이스 정보 로드 실패 시 예외 처리
       }

       ecNet_SetAlState(Device_Info.NetIdx, ecAL_STATE_OP, &Error_Num);
//ALState OP모드로 전환

       ecmSxCtl_SetSvon(Device_Info.NetIdx, AXISX, &Error_Num);
       ecmSxCtl_SetSvon(Device_Info.NetIdx, AXISY, &Error_Num);
}

/***************************************************************
* OnSetSpeed : 이 함수는 속도설정의 변경이 필요할 때
* 호출되는 가상의 함수 입니다.
***************************************************************/

void OnSetSpeed()
{
       ecmIxCfg_MapAxes (Device_Info.NetIdx , MAP0, AXISX | AXISY, 0, ecmIX_MODE_LINEAR , &Error_Num);
       //보간 그룹에 축을 설정하고 직선 보간 모드로 설정
       ecmIxCfg_SetSpeedPatt( Device_Info.NetIdx ,  MAP0, 0, 0, 0, 40000, 10000, 10000, &Error_Num);
       //보간 그룹을 Master Speed Mode로 설정하고 초기속도, 종료속도, 작업 속도, 가속도,감속도 순으로 설정
}
/***************************************************************
* DoMotion : 작업명령시에 호출되는 가상의 함수 입니다.
* 이 함수는 X, Y축에 대하여 상대 좌표 (1000, 2000)만큼 직선 보간 이동합니다.
* ***************************************************************/
void DoMotion()
{
       double fDistList[2] = {1000, 2000};//각축의 이동할 거리입니다.

       ecmIxMot_LineStart (Device_Info.NetIdx,  MAP0, fDistList, &Error_Num);
}