4.1.2. cmmCfgGetCtrlMode¶
SYNOPSYS¶
VT_I4 cmmCfgGetCtrlMode(
[in] VT_I4 Axis, [out] VT_PI4 CtrlMode
)
DESCRIPTION¶
cmmCfgGetCtrlMode() 함수는 각 축의 제어모드에 대하여 현재 장치에 설정되어 있는 값을 읽어 들이는 함수입니다.
PARAMETER¶
Axis: 축번호. 축번호는 상수값으로 [cmX1] 부터 0 번째 축을 기준 축으로 임의의 축을 설정할 수 있습니다.
CtrlMode : cmmCfgGetCtrlMode 함수의 인자이며, 제어모드를 반환합니다. 반환값의 의미는 다음과 같습니다
Value |
Meaning |
---|---|
0 (cmCTRL_OPEN)[초기값] |
Open loop 제어 모드입니다. 이 모드에서는 이송명령의 목표 좌표가 항상 커맨드 위치를 기준으로 설정됩니다. |
1 (cmCTRL_SEMI_C) |
Semi-closed loop 제어 모드입니다. 이 모드에서는 이송명령의 목표 좌표가 항상 FEEDBACK 위치를 기준으로 설정됩니다. |
RETURN VALUE¶
Value |
Meaning |
---|---|
음수 |
수행 실패 |
cmERR_NONE |
수행 성공 |
REFERENCE¶
여기서 설정하는 제어모드는 절대 좌표 이송 명령에서만 영향을 미치고, 상대 좌표 이송 명령에서는 항상 Open loop 제어 모드로 운용됩니다.
제어 모드에 따른 차이에 대한 이해(理解)를 돕기 위하여 예를 들어보겠습니다. 현재 커맨드 위치가 5000 , 피드백 위치가 4000 인 상태에서 cmmSxMoveTo() 함수를 사용하여 10000 의 위치로 이송하라는 명령을 하달하였을 때 • Open loop 제어모드에서는 현재 위치에서 5000 만큼 (+) 방향으로 이송 • Semi-Closed Loop 제어모드에서는 현재 위치에서 6000 만큼 (+) 방향으로 이송 을 하는 서로 다른 이송 결과를 나타낼 수 있습니다.
Semi-closed loop 제어모드로 설정하였을 때 이송 목표 좌표의 계산은 이송 명령을 수행하는 초기에 계산됩니다. 즉, 이송 명령을 실행하는 초기에 현재의 피드백 위치를 읽어서 목표 좌표와의 차이 만큼을 상대좌표 이송하는 방식으로 운용됩니다. 따라서 이송 명령이 끝나는 시점에서 피드백 위치를 확인하여 지령된 목표좌표에 피드백 위치가 항상 일치하는 것을 보장하는 Full-closed loop 방식과는 차이가 있습니다.
EXAMPLE
cmmCfgSetCtrlMode를 참조하세요.
See also