자동으로 정지시키기


goto ~ sw명령을 이용하면 리미트스위치가 닫혔을 때 자동으로 스텝모터의 동작을 정지시킬 수 있습니다. 이 명령을 통해 모터가 정지되면 모터의 상태 값은 정지상태가 됩니다.

"goto [dir]sw(id) [speed] [accel] [decel]"

※ 주의: [dir]과 sw(id) 사이에는 빈 공간(space)이 없습니다.

파라미터 설명 필수/옵션
dir 회전 방향, "+"(정 회전) 또는 "-"(역 회전) 옵션(생략시 "+")
id 디지털 입력포트 아이디, 0/1/2/3 필수
speed 회전 속도(단위: pps) 옵션
accel 가속도(단위: pps/s) 옵션
decel 감속도(단위: pps/s) 옵션
<?php
include_once "/lib/sd_spc.php";

spc_reset();
spc_sync_baud(115200);

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

// rotate until digital input 0 is LOW
echo "find positive limit ...";
spc_request_dev($sid, "goto +sw0 400 0");
while((int)spc_request_dev($sid, "get state"))
    usleep(1);
echo "done\r\n";

sleep(1);

// rotate until digital input 1 is LOW
echo "find negative limit ...";
spc_request_dev($sid, "goto -sw1 400 0");
while((int)spc_request_dev($sid, "get state"))
    usleep(1);
echo "done\r\n";
?>
find positive limit ...done
find negative limit ...done