.. _cemSxMoveStart2V: cemSxMoveStart2V ================= ----------------- SYNOPSYS ````````````` .. code-block:: none t_i32 cemSxMoveStart2V( LONG Axis, DOUBLE Distance, DOUBLE Vel2 ) DESCRIPTION ````````````` - 하나의 축에 대하여 현재 위치에서 지정한 거리(상대 좌표)만큼 2 단계 속도로 이송을 수행합니다. \ - 이송을 시작하면 cemCfgSpeedPattern_Set 함수를 통해 설정된 작업 속도까지 가속을 한 후 Vel2 로 설정한 2 차 작업속도까지 가속을 한 뒤 감속하여 이송을 완료합니다. \ - 이 함수는 모션을 시작시킨 후에 바로 반환됩니다. PARAMETER ````````````` - Axis : 축 번호 - Distance : 이송할 거리를 지정합니다. 이 값은 현재의 위치에 대한 상대 좌표이며, 논리적 거리(Logic distance) 단위를 사용합니다. - Vel2 : 이 매개변수를 통하여 2 차 작업 속도를 설정합니다. RETURN VALUE ````````````` - 함수 수행 여부를 반환합니다. +----------------+-----------+ | Value | Meaning | +================+===========+ | 음수 | 수행 실패 | +----------------+-----------+ | 0 (ceERR_NONE) | 수행 성공 | +----------------+-----------+ REFERENCE ``````````` .. image:: ../../Image/cEIP-1.jpg EXAMPLE ````````````` .. code-block:: c++ :linenos: :emphasize-lines: 5 C/C++ #include “ceSDK.h” #include “ceSDKDef.h” long nAxisNo = 1; // 이송 대상 축을 선택합니다. void OnSetSpeed () { / / 대상 축의 기본 속도를 설정합니다. cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 1000, 5000, 5000 ); } void OnMove () { long nRetVal; /* 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후 감속하여 현재 위치에서 ‘10000’만큼 상대 위치까지 이송합니다. */ nRetVal = cemSxMoveStart2V ( nAxisNo, // 대상 축 설정. 10000, // 이송할 거리 설정. 20000 // 2 차 작업 속도 ) if ( nRetVal == ceERR_NONE ) { //블록 모드를 CE_FALSE 로 하면 UI 메시지 처리가 가능합니다. cemSxWaitDone ( nAxisNo, CE_FALSE ); } /* 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후 감속하여 현재 위치에 관계 없이 ‘0’ 위치로 절대 이송합니다. */ if ( cemSxMoveToStart2V ( nAxisNo, 0, 20000 ) == ceERR_NONE ) { long nIsDone; // 단축 이송 완료 정보. While ( 1 ) { // 단축 이송 작업 완료를 확인합니다. cemSxIsDone ( nAxisNo, &nIsDone ); if ( nIsDone == CE_TRUE ) break; } } } .. code-blcok:: none :linenos: Visual Basic Dim nAxisNo As Long ‘ 이송 대상 축을 선택합니다. nAxisNo = 1 Private Sub OnSetSpeed () ‘ 대상 축의 기본 속도를 설정합니다. cemCfgSpeedPattern_Set ( nAxisNo, cemSMODE_T, 1000, 5000, 5000 ) End Sub Private Sub OnMove () Dim nIsDone As Long ‘ 단축 이송 완료 정보. ‘ 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후 ‘ 감속하여 현재 위치에서 ‘10000’만큼 상대 위치까지 이송합니다. If cemSxMoveStart2V ( nAxisNo, 10000, 20000 ) = ceERR_NONE Then ‘ 블록 모드를 CE_FALSE 로 하면 UI 메시지 처리가 가능합니다. Call cemSxWaitDone ( nAxisNo, CE_FALSE ) End If ‘ 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후 ‘ 감속하여 현재 위치에 관계 없이 ‘0’ 위치로 절대 이송합니다. If cemSxMoveToStart2V ( nAxisNo, 0, 20000 ) = ceERR_NONE Then nIsDone = CE_FALSE ‘ 단축 2 단계 이송 작업 완료를 확인합니다. While ( nIsDone = CE_FALSE ) Call cemSxIsDone ( nAxisNo, nIsDone ) Wend End If End Sub .. code-block:: none :linenos: Delphi procedure OnSetSpeed (); begin // 대상 축의 기본 속도를 설정합니다. cemCfgSpeedPattern_Set ( cemX1, cemSMODE_T, 1000, 5000, 5000 ); end; procedure OnMove (); var nIsDone : LongInt; // 단축 이송 완료 정보. begin { 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후 감속하여 현재 위치에서 ‘10000’만큼 상대 위치까지 이송합니다. } if cemSxMoveStart2V ( cemX1, 10000, 20000 ) = ceERR_NONE then begin // 블록 모드를 CE_FALSE 로 하면 UI 메시지 처리가 가능합니다. cemSxWaitDone ( cemX1, CE_FALSE ); end; { 대상 축의 기본 작업 속도까지 가속을 한 후 설정한 2 차 작업 속도까지 가속을 한 후 감속하여 현재 위치에 관계 없이 ‘0’ 위치로 절대 이송합니다. } if cemSxMoveToStart2V ( cemX1, 0, 20000 ) = ceERR_NONE then begin nIsDone := CE_FALSE; // 단축 2 단계 이송 작업 완료를 확인합니다. while nIsDone = CE_FALSE do begin cemSxIsDone (cemX1, @nIsDone ); end; end; end;