제어잠금 및 해제


제어잠금 기능은 일종의 물리적인 보호 기능입니다. 이 기능은 디지털 입력포트에 리미트스위치를 연결하고 스위치가 닫히면 추가적인 제어를 불가능하게 하는 것입니다. 따라서 스텝모터의 동작범위를 제한할 수 있습니다.

제어잠금

모터의 동작이 리미트스위치에 의해 멈추면 모터의 상태는 잠금상태가 되어 잠금을 해제하기 전까지 추가적인 제어가 불가능합니다.

제어잠금 모드 설정

설정하기의 "디지털 입력포트 설정"을 참고하여 디지털 입력모드를 제어잠금 모드로 설정합니다.

잠금의 해제

제어기 잠금 상태를 해제하는 명령어는 unlock입니다.

unlock명령을 수행하면 모터의 상태는 잠김상태에서 정지상태로 전환되고, 디지털 입력포트의 입력모드는 제어잠금 모드에서 일반입력 모드로 초기화 됩니다.

따라서 unlock수행 이후에는 정상적으로 모터 제어가 가능합니다.

<?php
include_once "/lib/sd_spc.php";

spc_reset();
spc_sync_baud(460800);

$sid = 1;
spc_request_dev($sid, "set vref stop 2");
spc_request_dev($sid, "set vref drive 8");
spc_request_dev($sid, "set vref lock 8");
spc_request_dev($sid, "set mode full");

spc_request_dev($sid, "eio set 0 mode lock");
spc_request_dev($sid, "eio set 1 mode lock");
spc_request_dev($sid, "eio set 2 mode lock");
spc_request_dev($sid, "eio set 3 mode lock");

spc_request_dev($sid, "move 4000 400 4000");

while((int)spc_request_dev($sid, "get state") > 1)
    usleep(1);

// state: 0 - stop, 1 - locked
echo "step_state ", spc_request_dev($sid, "get state"), "\r\n";

spc_request_dev($sid, "unlock");

// state: 0 - stop, 1 - locked
echo "step_state ", spc_request_dev($sid, "get state"), "\r\n";
?>
step_state 1
step_state 0