Управление шпинделем фрезера вопрос к практикам

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
volomer
Новичок
Сообщения: 25
Зарегистрирован: 10 ноя 2015, 16:10
Репутация: 0
Настоящее имя: Владимир
Откуда: Ленинград
Контактная информация:

Управление шпинделем фрезера вопрос к практикам

Сообщение volomer »

Приветствую.
Дано: шпиндель имеет двухпроводное дискретное управление по направлению/запуску/останову (если активен сигнал CW и неактивен сигнал CCW - вращение по часовой, если активен сигнал CCW и неактивен сигнал CW - вращение против, оба неактивны - останов, оба активны - запрещенное состояние), скорость задается по аналоговому каналу.
Linuxcnc, выполняя команду "M3", активирует сигнал шпиндель-энейбл и шпиндель-форвард (названия примерны), выполняя команду "M4" - шпиндель-энейбл и шпиндель-реверс, при выполнении команды "M5" - делает сигналы шпиндель-энейбл, шпиндель-форвард и шпиндель-реверс неактивными.
Linuxcnc позволяет выполнение произвольной последовательности кодов "M3" и "M4", не заботясь о необходимости останова шпинделя при смене направления вращения, что для реального шпинделя неприемлемо.
Вопрос к практикам, столкнувшимся с подобной проблемой: какой сценарий поведения системы при смене направления вращения шпинделя без промежуточного останова предпочтительнее с точки зрения минимизации ущерба?
- естоп (или программа кривая или оператор устал) :)
- игнорируем смену направления вращения, режем дальше :(
- останавливаем шпиндель :( :(
- другое
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение aftaev »

volomer писал(а):Linuxcnc позволяет выполнение произвольной последовательности кодов "M3" и "M4", не заботясь о необходимости останова шпинделя при смене направления вращения, что для реального шпинделя неприемлемо.
А если нарезать метчиком резьбу, тоже должно остановится?
Необходимость плавного разгона/торможения в том числе при реверсе это как бы задача разве не частотника/привода шпинделя?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение ScrewDriver »

volomer писал(а):что для реального шпинделя неприемлемо.
А у меня нормально отрабатывает.
ПЧ должен быть настроен на останов и смену вращения при переходе через ноль.
Если у Вас контакторы - то можно сделать во первых электрическую, во вторых механическую (сдвоенные контакторы) блокировку.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
volomer
Новичок
Сообщения: 25
Зарегистрирован: 10 ноя 2015, 16:10
Репутация: 0
Настоящее имя: Владимир
Откуда: Ленинград
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение volomer »

"А у меня нормально отрабатывает" - вот прям мгновенно останавливается?
"ПЧ должен быть настроен на останов и смену вращения при переходе через ноль" - это я не понял, поясните пожалуйста.
"Если у Вас контакторы - то можно сделать во первых электрическую, во вторых механическую (сдвоенные контакторы) блокировку." - здорово, но как УП об этом узнает? Понятно для УП надо вводить ОС. Вопрос кто как это делает? А если оператор такое сделал? - задержки обеспечивающие гарантированный останов для смены направления? Собственно вопрос не о том как, а о том что лучше.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение ScrewDriver »

volomer писал(а):Понятно для УП надо вводить ОС. Вопрос кто как это делает? А если оператор такое сделал? - задержки обеспечивающие гарантированный останов для смены направления? Собственно вопрос не о том как, а о том что лучше.
ПЧ не должен мгновенно останавливать, он должен позволять управлять вращением как в одну, так и в другую сторону.
У меня ПЧ подключен по сетевому протоколу и linuxcnc знает, когда заданная скорость достигнута - исполнение УП будет приостановлено, до момента выхода на заданные обороты. Используется служебный флаг spindle at speed.

Если у вас так не получится - можно настроить реле выхода ПЧ на срабатывание при достижении заданной скорости и этот сигнал завести в LinuxCNC.
Искомый сигнал зовется motion.spindle-at-speed
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
volomer
Новичок
Сообщения: 25
Зарегистрирован: 10 ноя 2015, 16:10
Репутация: 0
Настоящее имя: Владимир
Откуда: Ленинград
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение volomer »

ScrewDriver
Мы с Вами говорим о разных вещах.
Вы - про приостановку выполнения программы до момента выхода шпинделя на заданные обороты.
А я - про смену направления вращения шпинделя которая должна выполняться через его физический останов, и о факте/моменте останова шпинделя система чпу должна знать. Я вот и спрашиваю: кто как из практиков дает знать своей системе чпу о том, что шпиндель реально остановился и можно делать реверс? А для тех, кто такими мелочами не заморачивается, я предложил четыре варианта ответов.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение ScrewDriver »

volomer писал(а):и о факте/моменте останова шпинделя система чпу должна знать
Вы определитесь, для себя, для начала - кто кем у вас управляет.

хотя действительно, чего это я :)
volomer писал(а): Я вот и спрашиваю: кто как из практиков дает знать своей системе чпу о том, что шпиндель реально остановился и можно делать реверс? А для тех, кто такими мелочами не заморачивается, я предложил четыре варианта ответов.
пойду дальше теоретизировать на станке :hehehe:
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение nkp »

Выделение_172.png (2853 просмотра) <a class='original' href='./download/file.php?id=154719&sid=a578bedfd663fbf5de98e702728ffa32&mode=view' target=_blank>Загрузить оригинал (35.39 КБ)</a>
может там и с настройкой железа можно разрулить ситуацию,но
вот схемка таймеров,которая "не дает" включить реверс сразу...
(это как вариант,можно ,и нужно доработать под свое понимание)
уставка таймеров - время полной остановки шпинделя
в хал:
net sfor motion.spindle-forward classicladder.0.in-00
net srev motion.spindle-reverse classicladder.0.in-01
net hstop halui.spindle.stop classicladder.0.out-03
volomer
Новичок
Сообщения: 25
Зарегистрирован: 10 ноя 2015, 16:10
Репутация: 0
Настоящее имя: Владимир
Откуда: Ленинград
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение volomer »

Ну смех то смехом, а что сделает ваша система если ей в MDI отдать команды S10000M3M4?

p.s. наличие/отсутствие сигнала управления не означает моментального выполнения команды
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение ScrewDriver »

volomer писал(а): Ну смех то смехом, а что сделает ваша система если ей в MDI отдать команды S10000M3M4?
разгонится до 10000 в одну сторону, потом остановится и разгонится в другую.
Хотя дайте 5 минут, я проверю и отпишусь.

Вы не подумайте - то что вы пишете - действительно задача железа, а не линукса. Линуксу лишь надо знать что его команда выполнена и можно дальше ехать.
UPD. Все проще - сам линукс не дает исполнить такую строчку - "Использованы два м-кода из одной модальной группы"

Если сделать М4 в отдельной строке - то как я и говорил. сначала разгон до 10к, затем останов до нуля и тут же разгон до 10к в другую сторону.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение aftaev »

volomer писал(а):кто как из практиков дает знать своей системе чпу о том, что шпиндель реально остановился и можно делать реверс?
По энкодеру на шпинделе, это если с ОС.

ЧПУ выдало задание +10в шпиндель вращается по часовой. ЧПУ выдает мгновенно -10в. Шпиндель должен вращаться против часовой. Шпиндель физически не сможет резко крутануться в другу сторону. Чтобы ничего не сломалось, в настройках привода шпинделя настраивают разгон/торможение.
Если нет ОС, при старте шпинделя и реверсе в ЧПУ задается время на разгон шпинделя. Тогда ЧПУ при команде М3 или М4 будет ждать несколько сек, для разгона шпинделя. Только после этого продолжит выполнение Gcode. Это можно прописать в самой ЧПУ или в постпроцессоре.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение aftaev »

volomer писал(а):а что сделает ваша система если ей в MDI отдать команды S10000M3M4?
Разгонит шпиндель до 10000 по последней команде М4, игнорируя М3.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение ScrewDriver »

aftaev писал(а):
volomer писал(а):а что сделает ваша система если ей в MDI отдать команды S10000M3M4?
Разгонит шпиндель до 10000 по последней команде М4, игнорируя М3.
ваша не правда, выше отписал :hehehe:
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
volomer
Новичок
Сообщения: 25
Зарегистрирован: 10 ноя 2015, 16:10
Репутация: 0
Настоящее имя: Владимир
Откуда: Ленинград
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение volomer »

nkp писал(а):
Выделение_172.png
может там и с настройкой железа можно разрулить ситуацию,но
вот схемка таймеров,которая "не дает" включить реверс сразу...
(это как вариант,можно ,и нужно доработать под свое понимание)
уставка таймеров - время полной остановки шпинделя
в хал:
net sfor motion.spindle-forward classicladder.0.in-00
net srev motion.spindle-reverse classicladder.0.in-01
net hstop halui.spindle.stop classicladder.0.out-03
Спасибо. Вероятно я сумбурно изложил свой вопрос, но Вы первый, кто его понял.
У меня несколько вариантов решения:
- на стандартной логике emc2
- на ладдере
- написав свой компонент
- ну совсем упоровшись, вмешаться в логику emc

Я хотел узнать что практики думают об этой проблеме или услышать, что это и не проблема вовсе.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение aftaev »

volomer, зачем тебе делать в Gcode М3 и М4 пусть даже с большим разбросом по времени? Пример?
Реверс шпинделя чаще всего применяют при циклах резьбонарезания метчиком.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение aftaev »

ScrewDriver писал(а):ваша не правда, выше отписал
Я предположил шо будет, а ты уже проверил :good:
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
volomer
Новичок
Сообщения: 25
Зарегистрирован: 10 ноя 2015, 16:10
Репутация: 0
Настоящее имя: Владимир
Откуда: Ленинград
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение volomer »

aftaev писал(а):
volomer писал(а):а что сделает ваша система если ей в MDI отдать команды S10000M3M4?
Разгонит шпиндель до 10000 по последней команде М4, игнорируя М3.
С чего бы такое странное поведение?
aftaev писал(а):
volomer писал(а):кто как из практиков дает знать своей системе чпу о том, что шпиндель реально остановился и можно делать реверс?
По энкодеру на шпинделе, это если с ОС.
Про энкодер речи не шло. ОС - любой отклик на воздействие.
ScrewDriver писал(а):
volomer писал(а): Ну смех то смехом, а что сделает ваша система если ей в MDI отдать команды S10000M3M4?
разгонится до 10000 в одну сторону, потом остановится и разгонится в другую.
Хотя дайте 5 минут, я проверю и отпишусь.

Вы не подумайте - то что вы пишете - действительно задача железа, а не линукса. Линуксу лишь надо знать что его команда выполнена и можно дальше ехать.
UPD. Все проще - сам линукс не дает исполнить такую строчку - "Использованы два м-кода из одной модальной группы"

Если сделать М4 в отдельной строке - то как я и говорил. сначала разгон до 10к, затем останов до нуля и тут же разгон до 10к в другую сторону.
Отлично, а если после M4 в отдельной строке будут другие строки программы, система дождется останова и разгона в другую сторону или продолжит выплнение?
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение ScrewDriver »

volomer писал(а): Отлично, а если после M4 в отдельной строке будут другие строки программы, система дождется останова и разгона в другую сторону или продолжит выплнение?
Я уже же Вам писал, что если завести motion.spindle-at-speed - то команды не будут выполняться до переключения этого сигнала в true.
Это ограничение не касается команд G0.

Если хотите, проверю на станке в живую.
Но, если честно не вижу в этом необходимости. Это и так работает - когда в УП встречается например S10000 для черновой и дальше идет S15000 чистовая - станок останавливает перемещения и ждет, когда достигнет скорости.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
Аватара пользователя
ScrewDriver
Мастер
Сообщения: 1942
Зарегистрирован: 06 сен 2016, 01:44
Репутация: 498
Настоящее имя: Василий
Откуда: Москва
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение ScrewDriver »

Напишите отдельно - проверить? пока станок включен.
Промышленная автоматика, ПЛК, приводы, SCADA системы
Мой Ютуб канал.
volomer
Новичок
Сообщения: 25
Зарегистрирован: 10 ноя 2015, 16:10
Репутация: 0
Настоящее имя: Владимир
Откуда: Ленинград
Контактная информация:

Re: Управление шпинделем фрезера вопрос к практикам

Сообщение volomer »

ScrewDriver писал(а):Напишите отдельно - проверить? пока станок включен.
Не, спасибо, с атспидом все понятно, я упустил, что Вы его используете.
Ответить

Вернуться в «LinuxCNC»