cmcStReadMioStatuses¶
SYNOPSYS¶
VT_I4 cmcStReadMioStatuses ([in] VT_I4 BoardId, [in] VT_I4 Channel, [out] VT_PI4 MioStates)
DESCRIPTION¶
이 함수는 현재 서보와 관련된 여러가지 MIO 상태를 반환합니다. 각 비트별로 할당된 MIO 의 상태를 표시하므로 사용자는 비트마스크를 수행하여 원하는 I/O 의 상태를 확인(確認)하여야 합니다. 범용적인 모션 응용프로그램에서는 MIO(Machine I/O) 상태를 표현하기 위한 용도로 본 함수의 사용 빈도가 매우 높습니다.
이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cmc 가 붙지 않습니다.
PARAMETER¶
▶ BoardId: 사용자가 설정한 디바이스(보드) ID.
▶ Channel : 축(채널) 번호. 축번호는 상수값으로 3번째 채널을 기준 채널로 임의의 채널을 설정할 수 있습니다.
▶ MioStates : Machine I/O 상태로 구조체(TMechnicalIO)로 되어 있습니다. 각 상태값의 비트 수와 의미는 아래와 같습니다.
Name
Bit 수
Meaning
INP
1
In-Position 상태(1=ON)
Reserved_00
1
예약 공간 #0
HC
1
원점 복귀 완료 상태(1=완료)
TL
1
Torque limite status(1=토크값이 제한치가 되었음)
WARNING
1
서보(AMP)의 경고상태(1=ON)
ALARM
1
서보(AMP)의 알람상태(1=ON)
SVRDY
1
서보(AMP)의 Servo On 준비 상태(1=ON)
SVON
1
Servo On 상태(1=ON)
ELN
1
-EL 센서 신호 상태(1=ON)
ELP
1
+EL 센서 신호 상태(1=ON)
ORG
1
원점 센서 신호 상태(1=ON)
EX_IN1
1
외부 입력 활성상태(1=ON)
EX_IN2
1
외부 입력 활성상태(1=ON)
EX_IN3
1
외부 입력 활성상태(1=ON)
EX_IN4
1
외부 입력 활성상태(1=ON)
EMG_STP
1
외부 입력 신호의 안전에 대한 활성상태(1=ON)
Reserved_01
4
예약 공간 #1
Reserved_02
12
예약 공간 #2
ZSPD
1
Zero Speed(1=정지 상태)
DEN
1
위치 결정 완료 상태(1=ON)
ZPOINT
1
Z상 검출위치 통과 상태
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
ERR_NONE |
수행 성공 |
EXAMPLE¶
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | C/C++
// BoardID는 0으로 선언되었다고 가정함
long dwMioState = 0;
cmcStReadMioStatuses(BoardID, 3, &dwMioState);
// dwMioState 의 값을 오른쪽으로 쉬프트 연산(Shift Operation) 하여, 해당 상태 값을
얻습니다.
BOOL RDY_State = (dwMioState >> cmIOST_RDY) & 0x1;
BOOL ALM_State = (dwMioState >> cmIOST_ALM) & 0x1;
BOOL ELP_State = (dwMioState >> cmIOST_ELP) & 0x1;
BOOL ELN_State = (dwMioState >> cmIOST_ELN) & 0x1;
………
………
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Delphi
//BoardID는 0으로 선언되었다고 가정함
Var
dwMioState : LongInt;
RDY_State : Boolean;
ALM_State : Boolean;
ELP_State : Boolean;
ELN_State : Boolean;
begin
cmcStReadMioStatuses(BoardID, 3,@dwMioState);
// dwMioState 의 값을 오른쪽으로 쉬프트 연산(Shift Operation) 하여, 해당 상태 값을
얻습니다.
RDY_State := Boolean((dwMioState shr cmIOST_RDY) and $1);
ALM_State := Boolean((dwMioState shr cmIOST_ALM) and $1);
ELP_State := Boolean((dwMioState shr cmIOST_ELP) and $1);
ELN_State := Boolean((dwMioState shr cmIOST_ELN) and $1);
………
………
end;
|