sysrover писал(а):Просто для меня большая часть хала пока непонятна.
HAL это просто "соединение проводками" пинов компонентов. Думай о компонентах hal как, напрмер, о драйверах шаговиков или серв, пины - контакты на клеммах, и ты просто соединяешь их между собой.
http://www.cnc-club.ru/wiki/index.php/% ... %D1%8B_hal
sysrover писал(а):В нашем случае думаю отдельно запускать шпиндели и работать ими отдельно будет сложно.
По этому нужно будет переключать степген на пины.
Тоесть когда нам нужно отрезать мы останавливаем шпиндель.
Дальше командой М103 соединяем степдиры обоих серв только дир в противополоржности.
Запускаем отрезаем.
Останавливаем.
Переключаем пины на нужную нам серву и продолжаем работать.
Как мне кажется надо:
1. Код для вкл/выкл шпинделей.
2. Пин для отслеживания синхронизации.
... наверное все

.
Как синхронизовать шпиндели: подаем на них одно и тоже задание. (при этом у одного stepgen scale отрицательный).
Как включать шпиндели: у каждого stepgen есть пин enable. (хотя... так он будет резко останавливаться... ) Лучше через mux2. Итак, подаем задание на шпиндели не напрямую, а через два mux2.
(
http://linuxcnc.org/docs/html/man/man9/mux2.9.html#NAME)
задание -> mux2.in -> mux2.out -> stepgen.vel-cmd
Включаем шпиндель путем переключения mux2.[номер шпинделя].sel, это можно сделать через motion.digital-out и Gкод G62-65
http://linuxcnc.org/docs/html/gcode/m-c ... ec:M62-M65
Теперь синхронизация. Чтобы определить, что шпиндели синхронизированы надо сравнить их скорости. Сделать это можно через обратную связь, или от энкокдеров, или от stepgen. Сравниваются пины через компонент near
http://linuxcnc.org/docs/html/man/man9/near.9.html#NAME
Т.е. ему на вход скорости шпинделей, на выходе будет синхронны они или нет. Чтобы сделать ожидание синхронизации, надо воспользоваться кодом M66 (
http://linuxcnc.org/docs/html/gcode/m-c ... ut-Control) и в нем назначить режим - ожидания высокого уровня (там же можно задать время ожидания, скажем 20 секунд, и потом проверить (через O... IF) синхронны ли шпиндели - если нет - авост).