cmlStReadMioStatuses


SYNOPSYS

VT_I4 cmlStReadMioStatuses ([in] VT_I4 BoardId, [in] VT_I4 Channel, [out] VT_PI4 MioStates)

DESCRIPTION

  • 이 함수는 현재 서보와 관련된 여러가지 MIO 상태를 반환합니다. 각 비트별로 할당된 MIO 의 상태를 표시하므로 사용자는 비트마스크를 수행하여 원하는 I/O 의 상태를 확인(確認)하여야 합니다. 범용적인 모션 응용프로그램에서는 MIO(Machine I/O) 상태를 표현하기 위한 용도로 본 함수의 사용 빈도가 매우 높습니다.

  • 이 함수의 사용과 호출에 있어, 제공된 ㈜커미조아의 함수 헤더 Visual Basic 에서는 함수의 첨두어 cml 가 붙지 않습니다.

PARAMETER

▶ BoardId: 사용자가 설정한 디바이스(보드) ID.

▶ Channel : 사용자가 제어하고자 하는 축(채널) 번호

▶ 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;
 cmlStReadMioStatuses(BoardID, 0, &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
 cmlStReadMioStatuses(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;