Команда goto предназначена для управления шаговым двигателем на основе начального положения, а не текущего положения двигателя. Этот метод можно использовать, даже если двигатель находится в рабочем состоянии.
"goto [sign](pos) [speed] [accel] [decel]"
※ Внимание: между знаками [sign] и (pos) не должно быть места/пробела
Описания агрументов выглядят следующим образом:
аргумент | описание | обязательно/опционально |
---|---|---|
sign | direction, "+"(forward) or "-"(reverse) | опционально(по умолчанию: "+") |
pos | target counter position | обязательно |
speed | speed(unit: pps) | опционально |
accel | acceleration(unit: pps/s) | опционально |
decel | deceleration(unit: pps/s) | опционально |
Аргумент pos основан на исходной позиции, а не на текущей позиции счетчика.
Если decel(замедление) пропущено, оно автоматически устанавливается в такое же значение, как и ускорение.
<?php
include_once "/lib/sd_spc.php";
spc_reset();
spc_sync_baud(115200);
$sid = 1;
spc_request_dev($sid, "set mode 4");
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 выполняется во время работы двигателя, то она будет выполнена немедленно.