Maho 400p фрезерный станок по металлу (400x250x375)
- mikehv
- Мастер
- Сообщения: 2102
- Зарегистрирован: 14 авг 2013, 10:10
- Репутация: 1170
- Откуда: Иваново
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Зачем использовать хоуминг внутри привода? Надо просто взять сигнал Z метки и хоумить средствами LCNC. Поставить любые датчики на дом, ехать до них, реверсироваться и ждать сигнал с Z метки. Классическая же схема. А так вообще не понятно
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Мне казалось, что это более правильное решение .
Хотя с ним у меня появилось много нюансов, начиная от ALM и WARN (скорее ошибка выбора оборудования), и кончая тем, что при поиске дома (режим PR), контролер перестает контролировать станок. Получается экономия выходов\выходов, 3 входа (3 сигнала метки) и 2 выхода на запуск поиска дома (перевод в специальный режим и сам запуск поиска). И реализовать это просто.
В таком случае нам понадобиться 6 входов (3 датчика, 3 сигнала метки), 3 выхода (хотя можно объединить команду запуска поиска нуля). Но решается проблема с ALM и WARN, а так же с контролем станка. Но пока не знаю, как реализовать.mikehv писал(а): Надо просто взять сигнал Z метки и хоумить средствами LCNC. Поставить любые датчики на дом, ехать до них, реверсироваться и ждать сигнал с Z метки.
Но мысль хорошая, это видимо не последняя моя ошибка .
Спасибо!
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Нужно будет сохранить настройки сервоприводов осей в режиме поиска нуля (не факт, что она останется в конечном виде, вероятнее все буду использовать схему поиска 0-ля предложенную mikehv), вдруг пригодится.
Проверял винт по X с помощью оптических линеек Sino KA-300. На станке были родные оптические линейки Heidenhain LS803, но по X разбито стекло, по Y и Z их состояние как и состояние блока отображения не давали уверенности в том, что они показываю корректные значения.
Погрешность 12,5 соток на длине 330мм (не весь ход из-за линейки и ее крепления), люфт на гайке 19 соток. Надо возвращаться к поиску винтов или ШВП.
Проверял винт по X с помощью оптических линеек Sino KA-300. На станке были родные оптические линейки Heidenhain LS803, но по X разбито стекло, по Y и Z их состояние как и состояние блока отображения не давали уверенности в том, что они показываю корректные значения.
Погрешность 12,5 соток на длине 330мм (не весь ход из-за линейки и ее крепления), люфт на гайке 19 соток. Надо возвращаться к поиску винтов или ШВП.
- mikehv
- Мастер
- Сообщения: 2102
- Зарегистрирован: 14 авг 2013, 10:10
- Репутация: 1170
- Откуда: Иваново
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Шесть входов и всё. Никакой команды запуска поиска нуля нет и не надо. Привод управляется по степ дирtpolimer2000 писал(а): ↑ таком случае нам понадобиться 6 входов (3 датчика, 3 сигнала метки), 3 выхода (хотя можно объединить команду запуска поиска нуля)
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Да, ошибся.
Там другой принцип, при получении сигнала от датчика, он будет запускать поиск 0-ля по метке.
Последний раз редактировалось tpolimer2000 03 май 2022, 13:42, всего редактировалось 1 раз.
- mikehv
- Мастер
- Сообщения: 2102
- Зарегистрирован: 14 авг 2013, 10:10
- Репутация: 1170
- Откуда: Иваново
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
В сервопривод не надо никаких команд. Не нужна эта функция в станке. Управление сервой только по входам степ дир. Остальным занимается стойкаtpolimer2000 писал(а): ↑03 май 2022, 13:01Да, ошибся.
Там другой принцип, при получении сигнала от датчика, он будет запускать поиск 0-ля по метке. В сервоприводе надо дать команду идти на 0, запутался.
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Вроде бы понял.
Получается, что сервопривод постоянно отправляет все сигналы на внешних выходах энкодера (OA, OB, OZ). Нужно завести сигнал индуктивного датчика и сигнал OZ от сервопривода в Mesa и так для каждой из осей.
А дальше расписать логику поведения в LinuxCnc. Мы дошли по индуктивному датчику, после этого идем вперед или назад и ждем когда получим сигнал с выхода OZ сервопривода. В теории не сложно.
- mikehv
- Мастер
- Сообщения: 2102
- Зарегистрирован: 14 авг 2013, 10:10
- Репутация: 1170
- Откуда: Иваново
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Всё так. Да и там расписывать то особо нечего. Все варианты описаны в мануале к ini файлу.tpolimer2000 писал(а): ↑ А дальше расписать логику поведения в LinuxCnc. Мы дошли по индуктивному датчику, после этого идем вперед или назад и ждем когда получим сигнал с выхода OZ сервопривода. В теории не сложно.
Еще можно в hal описать логику на простейших логических компонентах. например суммировать два сигнала и при наличии сигнала на обоих подать как обычный home.
Можно в Classicladder сделать логическую схемку с тем же суммированием.
Вариантов масса
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Нашел не плохое описание работы - https://linuxcnc.org/docs/html/config/i ... ple_layout. Так же есть на русском - https://www.cnc-club.ru/wiki/index.php/ ... 0.BA.D0.B0, путь не такое подробное.
Там же нашел ответ, почему LinuxCnc игнорирует мягкие лимиты, если использую пульт и кнопки в программе (но работают в G-коде). Вероятнее всего из-за настройки NO_FORCE_HOMING = 1 в файле ini.
С этим пока не разобрался, так как станок не всегда под рукой, чтобы делать тесты. Думаю разбираться с hal на виртуальной машине, с конфигурацией для LTP, там как раз есть возможность сделать конфигурацию в режиме симуляции.mikehv писал(а): Еще можно в hal описать логику на простейших логических компонентах. например суммировать два сигнала и при наличии сигнала на обоих подать как обычный home.
Какой-то язык основанный на электрической логики - http://linuxcnc.org/docs/stable/html/la ... intro.html. Пока не разбираюсь в электронике, как и в программировании.mikehv писал(а): Можно в Classicladder сделать логическую схемку с тем же суммированием.
Спасибо за пояснение, не знал, что это настраивается в ini.
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Сохраню себе настройки сервоприводов осей.
Наводим порядок с электроникой в шкафу. Отец старается делать идеально.
Подключили оптическую линейку Sino KA-300 (родным не было доверия из-за внешнего вида) к Arduino, чтобы можно было проверять винты. Взяли Arduino Mega + 7 сегментный индикатор MAX7219.
Тесты показали, что родные линейки Heidenhain LS803 (подключенные к родному блоку индикации) дают более точные показания (проверяли индикатором часового типа), чем Sino KA-300 (5 микронная линейка).
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Планировал управлять оборотами шпинделя сигналом 0-10В.
Mesa 7I96 генерирует ШИМ, этот сигнал подаем на плату конвертации ШИМ в сигнал 0-10В (PWM10V), плата конвертации подает сигнал на сервопривод. Подключил внешние сигналы энкодера шпинделя с сервопривода (A,B) на Mesa, думал с их помощью контролировать скорость в заданном диапазоне.
Получилось управлять шпинделем, но обороты не соответствовали тем, что были заданы. К примеру в программе задано 100 об/минуту, значение hm2_7i96.0.pwmgen.00.value = 100, а показания энкодера hm2_7I96.0.encoder.00.velocity-rpm = 534 (они советовали реальным оборотам). Вероятнее всего не правильная настройка, оставлю себе на память архив с настройками.
Отказался от этой идеи, так как в документации к плате PWM10V было написано следующее: Разрешающая способность 0,1В. Если правильно понял, плата способна выдавать сигнал от 0 до 10В с минимальным шагом 0,1В. При 4000 об/минуту на шпинделе, минимальный шаг изменения 40об/минуту (если предположить, что сигнал будет линейным).
Забыл проверить интересную мысль xenon-alien.
Настроил сервопривод шпинделя для управления Step\Dir.
Попытался настроить управление оборотами шпинделя с помощью PncConf, не получилось. Нашел тему, в которой решали аналогичную проблему, viewtopic.php?f=15&t=28669&start=160. В итоге получилось, но не до конца понял как (в решении проблемы использовался метод научного тыка).
Настройки в файле ini
Настройки файла hal были взяты после запуска PncConf.
Изменение скорости происходило только при изменении параметра STEP_SCALE, все остальные параметры не влияли на скорость. Получилось управлять оборотами шпинделя с точностью около 1% от заданной скорости. В будущем надо настроить энкодер и возможно ПИД для нарезания резьбы. И надо находить время на изучение hal, без этих знаний становится все сложнее.
Сейчас надо разбирать станок чтобы замерить винты и сделать чертежи. Все винты и гайки под замену, учитывая возраст станка, чудес не бывает.
Mesa 7I96 генерирует ШИМ, этот сигнал подаем на плату конвертации ШИМ в сигнал 0-10В (PWM10V), плата конвертации подает сигнал на сервопривод. Подключил внешние сигналы энкодера шпинделя с сервопривода (A,B) на Mesa, думал с их помощью контролировать скорость в заданном диапазоне.
Получилось управлять шпинделем, но обороты не соответствовали тем, что были заданы. К примеру в программе задано 100 об/минуту, значение hm2_7i96.0.pwmgen.00.value = 100, а показания энкодера hm2_7I96.0.encoder.00.velocity-rpm = 534 (они советовали реальным оборотам). Вероятнее всего не правильная настройка, оставлю себе на память архив с настройками.
Отказался от этой идеи, так как в документации к плате PWM10V было написано следующее: Разрешающая способность 0,1В. Если правильно понял, плата способна выдавать сигнал от 0 до 10В с минимальным шагом 0,1В. При 4000 об/минуту на шпинделе, минимальный шаг изменения 40об/минуту (если предположить, что сигнал будет линейным).
Забыл проверить интересную мысль xenon-alien.
Решил перейти на управление оборотами шпинделя с помощью Step\Dir. Залил стандартную прошивку в Mesa, перегрузил и проверил настройки.xenon-alien писал(а): ↑ Вы чисто для интереса ткните мултиметром (только осторожно) в режиме измерения напряжения. Чёрный щуп на землю, а красный на ШИМ.
Полюбуйтесь результатом изменяя обороты.
Код: Выделить всё
mesaflash --device 7i96 --addr 10.10.10.10 --write 7i96d.bit
mesaflash --device 7i96 --addr 10.10.10.10 --reload
mesaflash --device 7i96 --addr 10.10.10.10 --readhmid
Код: Выделить всё
P1-00 - 002
P1-01 - 000
P1-44 - 25000
P1-45 - 10
P1-46 - 2500
Настройки в файле ini
Код: Выделить всё
[SPINDLE_0]
MAX_VELOCITY = 66.6666666667
MAX_ACCELERATION = 300.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 83.33
STEPGEN_MAXACCEL = 375.00
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 4000.0
# these are in nanoseconds
DIRSETUP = 2000
DIRHOLD = 2000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 32.1
Изменение скорости происходило только при изменении параметра STEP_SCALE, все остальные параметры не влияли на скорость. Получилось управлять оборотами шпинделя с точностью около 1% от заданной скорости. В будущем надо настроить энкодер и возможно ПИД для нарезания резьбы. И надо находить время на изучение hal, без этих знаний становится все сложнее.
Сейчас надо разбирать станок чтобы замерить винты и сделать чертежи. Все винты и гайки под замену, учитывая возраст станка, чудес не бывает.
- Вложения
-
- 7I96_GMOC_Spindle_PWM.zip
- (362.25 КБ) 143 скачивания
-
- 7I96_GMOC_Spindle_STEPGEN.zip
- (362.2 КБ) 133 скачивания
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Так и есть, специально перепрограммировал Mesa в режим генерации ШИМ.xenon-alien писал(а): ↑ Вы чисто для интереса ткните мултиметром (только осторожно) в режиме измерения напряжения. Чёрный щуп на землю, а красный на ШИМ.
Полюбуйтесь результатом изменяя обороты.
но проще так... На выходе видим 0-5В, почти аналог. По этому некоторые ПЧ, даже на 0-10в могут воспринимать 0-5в, только ему нужно дать понять, что 5в это уже потолок.
Вот мои результаты:
S10 (10 об. минуту) -4,71В
S500 (500 об. минуту) -3,55В
S1000 (1000 об. минуту) -2,37В
S2000 (2000 об. минуту) 0В
S3000 (3000 об. минуту) 2,36В
S4000 (4000 об. минуту) 4,73В
До 2000 об. минуту получаю минус, ожидал увидеть значения от 0В до 5В (для моего диапазона работы от 0 до 4000 об. минуту), возможно все дело в настройках hal.
Разбираюсь с hal, решил разобраться на примере настроек шпинделя. Причина простая, режим управления шпинделем по STEP\DIR, который был взят из конфигуратора Pncconf, странно работает на маленьких скоростях. На скорости 10 об. минуту, он делает большой шаг, останавливается, выжидает и снова делает большой шаг. На скорости 100 об. минуту, получаю хороший резонанс, причем он не связан с механикой. Если запускать шпиндель с помощью внутреннего управления с сервопривода в режиме JOG, резонанса практически нет.
- mikehv
- Мастер
- Сообщения: 2102
- Зарегистрирован: 14 авг 2013, 10:10
- Репутация: 1170
- Откуда: Иваново
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Смотри настройки ПИД в сервоприводе.tpolimer2000 писал(а): ↑ На скорости 10 об. минуту, он делает большой шаг, останавливается, выжидает и снова делает большой шаг. На скорости 100 об. минуту, получаю хороший резонанс, причем он не связан с механикой
Управление шпинделем по степ.дир в лцнц работает без нареканий.
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Вроде бы не делал ни каких настроек ПИД в сервоприводе, как и в LinuxCnc. Но сброшу все настройки и попробую настроить заново.
Есть предположение, что проблема кроется в неправильной настройке электронного редуктора у сервопривода. Надо будет настроить этот сервопривод как обычную ось и посмотреть как она будет работать.
- mikehv
- Мастер
- Сообщения: 2102
- Зарегистрирован: 14 авг 2013, 10:10
- Репутация: 1170
- Откуда: Иваново
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Для шпинделя можно использовать авто настройку. Почитай мануал. Там есть уровни автонастройки. Этого хватит
Сервопривод без настройки коэффициентов не взлетит!)
Сервопривод без настройки коэффициентов не взлетит!)
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Проблема была решена, не правильно настроил электронную редукцию. В одном обороте было около 20 импульсов , поэтому на небольших скоростях он делал шаг, останавливался, ждал и делал следующий шаг.tpolimer2000 писал(а): ↑ На скорости 10 об. минуту, он делает большой шаг, останавливается, выжидает и снова делает большой шаг. На скорости 100 об. минуту, получаю хороший резонанс, причем он не связан с механикой. Если запускать шпиндель с помощью внутреннего управления с сервопривода в режиме JOG, резонанса практически нет.
Новые настройки сервопривода шпинделя (Delta B2)
P1-44 - 160
P1-45 - 10
Мотор с энкодером 160 000 импульсов на оборот
Ременная редукция 1 к 2.
В итоге получаем 5000 импульсов на 1 оборот на шпинделя. Подробнее о расчете тут - http://www.deltronics.ru/images/manual/ ... _B2_RU.pdf на странице 21 или тут в одном посте - viewtopic.php?p=303283#p303283
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
Поменяли все ходовые винты и гайки к ним на станке. Хотел установить ШВП, но их нужно ждать очень долго, поэтому заказали трапециевидные винты. Точность винтов где-то между C5 и С7, накопленная погрешность шага 0,025мм на 300мм. Сделали к ним бронзовые гайки, по 2 гайки на винт, для регулировки люфта.
Сейчас разбираемся с люфтами, после чего будем измерять точность перемещений. Временно используем компенсацию люфтов в LinuxCnc.
Подробнее тут - https://www.cnc-club.ru/wiki/index.php/ ... %D0%BB_INI.
Программная компенсация люфта отрабатывает отлично, но хотелось бы убрать люфт.
На ось Z установили 2 газовых амортизатора, чтобы облегчить нагрузку на сервомотор. Сделали гидрозажим инструмента, цилиндр был взят от Maho 600p. Подключил датчик инструмента, но probe-screen еще не тестировал, на очереди краеискатель. Так же в процессе работы защита станка, включая кабинет. Были обнаружены проблемы с поиском нуля серводрайвером (сам поиск работает отлично, но есть проблемы с согласованием в LinuxCnc). Поэтому решил перенести поиск нуля в LinuxCnc.
Планирую использовать датчики Home и индексную метку энкодера, которую можно вывести с серводрайвера. Пока завис с подключением индексной метки к контролеру.
Работа идет, хоть не так быстро как бы хотелось.
Сейчас разбираемся с люфтами, после чего будем измерять точность перемещений. Временно используем компенсацию люфтов в LinuxCnc.
Код: Выделить всё
BACKLASH = 0.060
Программная компенсация люфта отрабатывает отлично, но хотелось бы убрать люфт.
На ось Z установили 2 газовых амортизатора, чтобы облегчить нагрузку на сервомотор. Сделали гидрозажим инструмента, цилиндр был взят от Maho 600p. Подключил датчик инструмента, но probe-screen еще не тестировал, на очереди краеискатель. Так же в процессе работы защита станка, включая кабинет. Были обнаружены проблемы с поиском нуля серводрайвером (сам поиск работает отлично, но есть проблемы с согласованием в LinuxCnc). Поэтому решил перенести поиск нуля в LinuxCnc.
Планирую использовать датчики Home и индексную метку энкодера, которую можно вывести с серводрайвера. Пока завис с подключением индексной метки к контролеру.
Работа идет, хоть не так быстро как бы хотелось.
- sima8520
- Почётный участник
- Сообщения: 4502
- Зарегистрирован: 24 ноя 2016, 23:35
- Репутация: 1616
- Настоящее имя: Илья
- Откуда: Беларусь, Гомель
- Контактная информация:
Re: Maho 400p фрезерный станок по металлу (400x250x375)
это интересноtpolimer2000 писал(а): ↑ Планирую использовать датчики Home и индексную метку энкодера, которую можно вывести с серводрайвера. Пока завис с подключением индексной метки к контролеру.
-
- Мастер
- Сообщения: 347
- Зарегистрирован: 07 ноя 2018, 19:03
- Репутация: 45
- Настоящее имя: Александр
- Откуда: Беларусь
- Контактная информация: