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]
|
|
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;
|