Блокировка и разблокировка


Блокировкой упарвления можно назвать функцию физической защиты девайса. Данная функция предназначена для подключения концевого выключателя к цифровому входному порту и для дальнейшего отключения управления, если переключатель закрыт. Таким образом, рабочий диапазон шагового двигателя может быть ограничен.

Блокировка управления

Если работа двигателя остановлена конечным выключателем, то состояние двигателя будет заблокировано и дальнейшее управление невозможно до тех пор, пока блокировка не будет снята.

Настройка блокировки управления

Задайте режим ввода для цифрового входа, ссылаясь на главу Настройки.

Разблокировка

Команда 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 4");

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