Контроль путем goto


Команда goto предназначена для управления шаговым двигателем в режиме "stop"/остановки в рабочем состоянии.

"goto [sign](pos) [speed] [accel] [decel]"

※ Внимание: между знаками [sign] и (pos) не должно быть места/пробела

Описания агрументов выглядят следующим образом:

Аргумент Описание Обязательно/опционально
sign direction, "+"(forward) or "-"(reverse) optional(default: "+")
pos target counter position обязательно
speed скорость/speed(ед.измерения: pps) опционально
accel ускорнение/acceleration(ед.измерения: pps/s) опционально
decel торможение/deceleration(ед.измерения: pps/s) опционально

Если decel(замедление) пропущено, оно автоматически устанавливается в такое же значение, как и ускорение.

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

spc_reset();
spc_sync_baud(115200);

$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 rsnc 120 250");
spc_request_dev($sid, "set pos -400");

spc_request_dev($sid, "goto +400 200 0");
sleep(1);
spc_request_dev($sid, "goto -400 200 0");
sleep(1);
spc_request_dev($sid, "goto +400 200 0");
while((int)spc_request_dev($sid, "get state"))
    usleep(1);
?>

※ Данная команда может быть использована даже при работе шагового двигателя. Поэтому, если новая команда goto выполняется во время двигателя, то она будет выполнена немедленно.