스텝모터의 현재 상태를 확인하기 위한 명령어는 get입니다.
스텝모터의 동작상태를 확인하는 명령어는 state입니다.
"get state"
반환되는 동작상태의 종류는 다음과 같습니다.
반환 값 | 상태 |
---|---|
0 | 정지됨 |
1 | 제어 잠김(lock) |
그 외 | 동작 중 |
<?php
include_once "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(460800);
$sid = 1;
spc_request_dev($sid, "set mode full");
spc_request_dev($sid, "set vref stop 2");
spc_request_dev($sid, "set vref drive 8");
spc_request_dev($sid, "set speed 400");
spc_request_dev($sid, "set accel 800");
spc_request_dev($sid, "set rsnc 120 250");
$state = 0;
spc_request_dev($sid, "move 400");
while($state = (int)spc_request_dev($sid, "get state"))
{
echo "state: $state\r\n";
usleep(200000);
}
echo "state: $state\r\n";
?>
state: 3
state: 2
state: 2
state: 2
state: 2
state: 2
state: 2
state: 0
현재 카운터 위치를 확인하는 명령어는 pos입니다.
"get pos"
<?php
include_once "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(460800);
$pos = -400;
$sid = 1;
spc_request_dev($sid, "set mode full");
spc_request_dev($sid, "set vref stop 2");
spc_request_dev($sid, "set vref drive 8");
spc_request_dev($sid, "set speed 400");
spc_request_dev($sid, "set accel 800");
spc_request_dev($sid, "set rsnc 120 250");
spc_request_dev($sid, "set pos $pos");
spc_request_dev($sid, "goto 400");
while((int)spc_request_dev($sid, "get state"))
{
$pos = (int)spc_request_dev($sid, "get pos");
echo "position: $pos\r\n";
usleep(200000);
}
?>
position: -315
position: -233
position: -151
position: -68
position: 14
position: 96
position: 178
position: 260
position: 338
position: 392
디지털 입력포트의 현재 상태를 확인하기 위한 명령어는 eio get입니다.
"eio get (p) input"
p는 입력포트의 아이디(0 ~ 3)를 의미합니다.
반환되는 입력포트 상태의 종류는 다음과 같습니다.
반환 값 | 상태 |
---|---|
0 | LOW |
1 | HIGH (기본 값) |
<?php
include_once "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(460800);
$sid = 1;
while(1)
{
echo spc_request_dev($sid, "eio get 0 input");
echo spc_request_dev($sid, "eio get 1 input");
echo spc_request_dev($sid, "eio get 2 input");
echo spc_request_dev($sid, "eio get 3 input");
echo "\r\n";
sleep(1);
}
?>
1111
0110
...생략...