12.1.5. ecmMxSt_IsBusy


SYNOPSIS

t_bool  ecmMxSt_IsBusy(
  t_i32  NetID,
  t_i32  NumAxes,
  t_i32  AxisList[],
  t_i32  *ErrCode,

)

DESCRIPTION

  • 이 함수는 여러 축에 대하여 모션이 이송중인지를 확인합니다.

PARAMETER

  • NetID : Network 번호

  • NumAxes : 동시에 작업을 수행할 대상 축 개수

  • AxisList : 동시에 작업을 수행할 대상 축 배열 주소값. 이 배열의 크기는 NumAxes값과 일치하거나 커야 합니다.

  • ErrCode : 이 매개 변수를 통하여 현재의 에러 코드를 반환합니다. 단, 이 매개 변수에 NULL을 전달하면 에러 코드를 반환하지 않습니다.

RETURN VALUE

  • 이 리턴값은 불 형(Boolean Type) 을 가지고 있습니다.

Value

Meaning

0

이송 중이 아님을 의미합니다.

1

이송 중임을 의미합니다.

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
 //본 예제는 ecmMxMot_MoveStart사용하여 두 축을 절대 좌표5000으로 이동하는 예 입니다.
 #include "ComiEcatSdk_Api.h"
 #define AXIS0   0
 #define AXIS1   1

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

 /***************************************************************
 * 프로그램 앞 부분은 생략
 ***************************************************************/

 /***************************************************************
 * DO_Busy: 작업 명령 시에 호출되는 가상의 함수 입니다.
 ***************************************************************/
 void DO_Busy()
{
       //cmsSetCfgSetSpeedPattern으로 설정된 첫번째 축(Axis)의 속도모드를
       //그대로 유지 하면서 두 축을 상대 위치 만큼 +5000 이동
       t_i32 AxisList[2] = {AXIS0, AXIS1};
       t_f64 PosList[2] = {5000,5000};

       ecmMxMot_MoveToStart(Device_Info.NetIdx, 2, AxisList, PosList, &Error_Num);
       //Move 두 축을 각각 절대 좌표 5000으로 이동

       While(1)
       {
               if(!ecmMxSt_IsBusy(Device_Info.NetIdx, 2, AxisList, &Error_Num)
               {
               //이송 중이 아니면 break;
                       break;
               }
       }
}