cemCfgSeqMode_Set


SYNOPSYS

VT_I4 cemCfgSeqMode_Set ([in] VT_I4 SeqMode )

DESCRIPTION

  • cemCfgSeqMode_Set() 함수는 현재 이송이 진행되고 있는 축에 새로운 이송 명령이 하달되었을 때, 처리를 어떻게 할 것인지에 대한 모드를 설정합니다. ceSDK에서는 현재 이송 명령이 진행되고 있으므로 에러로 처리하는 모드와 이전 이송 명령이 완료될 때까지 내부적으로 루프를 돌면서 기다리다가 이전 명령이 완료되면 새로운 명령을 실행하는 모드를 지원합니다.

PARAMETER

▶ SeqMode : 현재 이송이 진행되고 있는 축에 새로운 이송 명령이 하달되었을 때 이의 처리를 어떻게 할 것인지에 대한 시퀀스(Sequence) 모드를 설정 혹은 반환합니다. 이 값의 의미는 다음과 같습니다.

Value

Meaning

0 (cemSEQM_SKIP_RUN)[Default]
현재 이송이 진행되고 있는 축에 새로운 이송 명령이 하달되면 -5170
(cemERR_MOT_SEQ_SKIPPED) 에러 값과 함께 곧바로 반환됩니다. 다양한 에러
코드의 확인 본 매뉴얼의 부록 편에 명시되어 있습니다.
1 (cemSEQM_WAIT_RUN)
현재 이송이 진행되고 있는 축에 새로운 이송 명령이 하달되면 이송 함수 내부에서
루프를 돌면서 이전 이송이 완료되기를 기다리다가 이전 이송이 완료되면 현재
하달된 이송 명령을 수행합니다.

RETURN VALUE

Value

Meaning

음수

수행 실패

0(ERR_NONE)

수행 성공

REFERENCE

Warning

시퀀스(Sequence) 모드가 ccemSEQM_SKIP_RUN[Default]으로 설정된 경우에 이전 이송 명령이 아직 끝나지 않은 상태에서 새로운 이송 명령이 하달되면 에러 처리되고 해당 이송 명령은 실행되지 않습니다. 따라서 이 모드에서 이송 명령을 내릴 때 사용자는 이전의 이송 명령이 완료되었음을 확인하는 것이 바람직합니다.

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
 C/C++
 #include “ceSDK.h”
 #include “ceSDKDef.h”
 void OnSetSeqMode ()
 {
 long nSeqMode;
 // 시퀀스 모드 정보.
 // 설정되어있는 시퀀스 모드를 확인 후, cemSEQM_SKIP_RUN 모드로 설정합니다.
 if ( cemCfgSeqMode_Get ( &nSeqMode ) == ceERR_NONE )
 {
 if ( nSeqMode != cemSEQM_SKIP_RUN )
 {
 cemCfgSeqMode_Set ( cemSEQM_SKIP_RUN )
 }
 }
 }
 void OnMove ()
 {
 SxVMoveStart ( cemX1 );
 // 속도 이송 명령 수행
 if ( SxMoveStart ( cemX1, 100000 ) != ceERR_NONE )
 {
 // -5170 에러 코드 반환
 // 시퀀스 모드가 cemSEQM_SKIP_RUN 모드로 설정되어 있으므로
 // 이송 명령이 완료되지 않은 상태에서 다른 이송 명령은 실행되지 않습니다.
 }
 }
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
 Visual Basic
 Private Sub OnSetSeqMode ()
 Dim nSeqMode As Long
 ‘ 시퀀스 모드 정보.
 ‘ 설정되어있는 시퀀스 모드를 확인 후, cemSEQM_SKIP_RUN 모드로 설정합니다.
 If cemCfgSeqMode_Get ( nSeqMode ) = ceERR_NONE Then
 If nSeqMode <> cemSEQM_SKIP_RUN Then
 Call cemCfgSeqMode_Set ( cemSEQM_SKIP_RUN )
 End If

 End If
 End Sub
 Private Sub OnMove ()
 Call SxVMoveStart ( cemX1 )
 ‘ 속도 이송 명령 수행
 If SxMoveStart ( cemX1, 100000 ) <> ceERR_NONE Then
 ‘ -5170 에러 코드 반환
 ‘ 시퀀스 모드가 cemSEQM_SKIP_RUN 모드로 설정되어 있으므로
 ‘ 이송 명령이 완료되지 않은 상태에서 다른 이송 명령은 실행되지 않습니다.
 End If
 End Sub
 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
 Delphi
 procedure OnSetSeqMode ();
 var
 nSeqMode : LongInt;
 // 시퀀스 모드 정보.
 begin
 // 설정되어있는 시퀀스 모드를 확인 후, cemSEQM_SKIP_RUN 모드로 설정합니다.
 if cemCfgSeqMode_Get ( @nSeqMode ) = ceERR_NONE then
 begin
 if nSeqMode <> cemSEQM_SKIP_RUN then
 begin
 cemCfgSeqMode_Set ( cemSEQM_SKIP_RUN );
 end;
 end;
 end;
 procedure OnMove ();
 begin
 SxVMoveStart ( cemX1 );
 ‘ 속도 이송 명령 수행
 if SxMoveStart ( cemX1, 100000 ) <> ceERR_NONE then
 begin
 { -5170 에러 코드 반환
 시퀀스 모드가 cemSEQM_SKIP_RUN 모드로 설정되어 있으므로
 이송 명령이 완료되지 않은 상태에서 다른 이송 명령은 실행되지 않습니다. }
 end;
 end;