Помогите разобраться в проблеме с линейкой, и заранее спасибо.
Имеем самодельный фрезерный станок, винты С7 с безлюфтовыми двойными гайками. Механика в полном порядке.
Комп: новый комп с Intel i3
Электроника станка: Mesa 5i25 и 7i76. ШД с энкодером Leadshine и их же драйверы. Управление Step-Dir без обратной связи в LinuxCNC.
ПО: LinuxCNC 2.5.3 с установочного диска.
Оптическая линейка Ditron, DC-11 купленная в пурелоджике. 1мкм разрешение.
Оптическая линейка подключена напрямую в 7i76 в колодку для энкодера, без всяких развязок.
+5v, A+ в ENCA+, A- в ENCA-, B+ в ENCB+, B- в ENCB-,
На 7i76 выставлен джамперами w4,w5,w6 режим TTL (все влево).
Читаем значения и пишем в лог-файл длинной чередой одинакового кода (сместились на 1мм, записали значение энкодера, сместились - считали - и так по всей длине винта).
Вот так:
Код: Выделить всё
G1 G53 Y1 f100
M66 E0 L0
(print, Y1, #5399)
G1 G53 Y2 f100
M66 E0 L0
(print, Y2, #5399)
Все пишется, все читается.
НО: прогоняя одну и туже программу 10 раз от начала до конца винта, картина каждый раз разная, с разбросом в 0.1мм. Естественно, ни о какой компенсации кривого винта и коррекции не может быть и речи.
Скрин во вложении - значения с линейки 10 одинаковых прогонов подряд.
Вертикальная шкала - миллиметры. Горизонтальная - станочная координата по оси.
Цветные графики - значения с линейки, Черный - среднее, Толстый желтый - средний сглаженный.
Более того, читая значения в одной и тойже станочной координате, с линейки все время разные значения - они примерно одинаковые, но все время плавают +-0.1мм.
Вопрос - линейка тупит или где-то ошибка в подключении?
Спасибо всем кто откликнулся!