Энкодер менял, порт на карте энкодера менял. Z метки осциллографом смотрел (и Z+, и Z-, и даже +/-A и даже +/-В) - все есть.
Собираю токарный станок на базе плат PinCET. Поставил энкодер на шпиндель (точнее подключил, с завода он там был).
Прописал в конфиге, почитал что к чему как. Накидал простейшую прогу из одной строки для нарезки резьбы.
НО! Всегда получаю шаг 10мм, не зависимо ни от чего.
Никакие параметры на шаг не влияют. Пробовал и в коде (G76 P) менять, и всевозможные подачи, и даже экнодер шпинделя в конфиге (scale) никакого изменения не дает. Любая скорость шпинделя всегда соответствует шагу, то есть при увеличении оборотов всегда попадает правильно, но с шагом в 10мм ( Ну заход резьбы всегда в разном месте. То есть в резьбу из прошлого цикла не попадает, но внутри одной программы попадает правильно.
Пару раз случалось, что при первом проходе станок делал правильный шаг, но после отхода и возврата в начальную точку - снова шаг 10мм.
Сегодня ковырялся еще раз, мне предложили провести тест с ручным вращением шпинделя. Прописал в конфиге at-speed и spindle-on через GUI кнопки. Дохожу пошагово до начала резьбы, жму обе кнопки, шпиндель тормозится, дальше я в халскопе смотрю на motion.spindle-index-enable и etcomb.1.feedback.encoder_en2 - оба активны (вообще они связаны в один сигнал). Начинаю крутить шпиндель, индексы гаснут и резец поехал с нужным шагом согласно повороту шпинделя.
Как только дошел до конца резьбы, происходит отход на ускоренной, перемещение в начало резьбы. Индексы не загораются, а резец поехал на ускоренной делать резьбу, потом опять отход, возврат, еще цикл и тп.. При этом шпиндель уже не вращаю. Если запустить программу еще раз, то УЖЕ и первый проход будет на ускоренной.
Если в MDI делать G33 (G31 у меня не понимает), такая же ерунда. Но если вдруг index включится, то последующие повторные запуски команды G33 через MDI работают корректно. А вот если запустить mdi G76 - первый проход, и все опять на ускоренной пока что-то где-то не восстановится - может через пять минут, может до выключения компа.
Собственно вопрос:
почему не выставляется index-enable?
Я что-то пропустил? Jitter может влиять на это?
Конфиг касательно шпинделя:
Код: Выделить всё
net spindle-revs => motion.spindle-revs
net spindle-at-speed => motion.spindle-at-speed
net spindle-vel-fb => motion.spindle-speed-in
net spindle-index-enable <=> motion.spindle-index-enable
#------- SPINDLE FEEDBACK -----------------
setp etcomb.1.feedback.enc_scale2 4000 (энкодер на 1000им, ABZ)
net spindle-revs <= etcomb.1.feedback.encoder2
net spindle-vel-fb <= etcomb.1.feedback.enc_vel2
net spindle-index-enable <= etcomb.1.feedback.index_en2