Страница 1 из 2

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

Добавлено: 16 янв 2019, 20:39
volomer
Приветствую.
Дано: шпиндель имеет двухпроводное дискретное управление по направлению/запуску/останову (если активен сигнал CW и неактивен сигнал CCW - вращение по часовой, если активен сигнал CCW и неактивен сигнал CW - вращение против, оба неактивны - останов, оба активны - запрещенное состояние), скорость задается по аналоговому каналу.
Linuxcnc, выполняя команду "M3", активирует сигнал шпиндель-энейбл и шпиндель-форвард (названия примерны), выполняя команду "M4" - шпиндель-энейбл и шпиндель-реверс, при выполнении команды "M5" - делает сигналы шпиндель-энейбл, шпиндель-форвард и шпиндель-реверс неактивными.
Linuxcnc позволяет выполнение произвольной последовательности кодов "M3" и "M4", не заботясь о необходимости останова шпинделя при смене направления вращения, что для реального шпинделя неприемлемо.
Вопрос к практикам, столкнувшимся с подобной проблемой: какой сценарий поведения системы при смене направления вращения шпинделя без промежуточного останова предпочтительнее с точки зрения минимизации ущерба?
- естоп (или программа кривая или оператор устал) :)
- игнорируем смену направления вращения, режем дальше :(
- останавливаем шпиндель :( :(
- другое

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

Добавлено: 16 янв 2019, 21:16
aftaev
volomer писал(а):Linuxcnc позволяет выполнение произвольной последовательности кодов "M3" и "M4", не заботясь о необходимости останова шпинделя при смене направления вращения, что для реального шпинделя неприемлемо.
А если нарезать метчиком резьбу, тоже должно остановится?
Необходимость плавного разгона/торможения в том числе при реверсе это как бы задача разве не частотника/привода шпинделя?

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

Добавлено: 16 янв 2019, 21:22
ScrewDriver
volomer писал(а):что для реального шпинделя неприемлемо.
А у меня нормально отрабатывает.
ПЧ должен быть настроен на останов и смену вращения при переходе через ноль.
Если у Вас контакторы - то можно сделать во первых электрическую, во вторых механическую (сдвоенные контакторы) блокировку.

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

Добавлено: 16 янв 2019, 22:22
volomer
"А у меня нормально отрабатывает" - вот прям мгновенно останавливается?
"ПЧ должен быть настроен на останов и смену вращения при переходе через ноль" - это я не понял, поясните пожалуйста.
"Если у Вас контакторы - то можно сделать во первых электрическую, во вторых механическую (сдвоенные контакторы) блокировку." - здорово, но как УП об этом узнает? Понятно для УП надо вводить ОС. Вопрос кто как это делает? А если оператор такое сделал? - задержки обеспечивающие гарантированный останов для смены направления? Собственно вопрос не о том как, а о том что лучше.

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

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

Если у вас так не получится - можно настроить реле выхода ПЧ на срабатывание при достижении заданной скорости и этот сигнал завести в LinuxCNC.
Искомый сигнал зовется motion.spindle-at-speed

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

Добавлено: 16 янв 2019, 22:52
volomer
ScrewDriver
Мы с Вами говорим о разных вещах.
Вы - про приостановку выполнения программы до момента выхода шпинделя на заданные обороты.
А я - про смену направления вращения шпинделя которая должна выполняться через его физический останов, и о факте/моменте останова шпинделя система чпу должна знать. Я вот и спрашиваю: кто как из практиков дает знать своей системе чпу о том, что шпиндель реально остановился и можно делать реверс? А для тех, кто такими мелочами не заморачивается, я предложил четыре варианта ответов.

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

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

хотя действительно, чего это я :)
volomer писал(а): Я вот и спрашиваю: кто как из практиков дает знать своей системе чпу о том, что шпиндель реально остановился и можно делать реверс? А для тех, кто такими мелочами не заморачивается, я предложил четыре варианта ответов.
пойду дальше теоретизировать на станке :hehehe:

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

Добавлено: 16 янв 2019, 23:05
nkp
Выделение_172.png (2870 просмотров) <a class='original' href='./download/file.php?id=154719&sid=0f09c43a091b037565888624f22d7f2f&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

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

Добавлено: 16 янв 2019, 23:09
volomer
Ну смех то смехом, а что сделает ваша система если ей в MDI отдать команды S10000M3M4?

p.s. наличие/отсутствие сигнала управления не означает моментального выполнения команды

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

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

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

Если сделать М4 в отдельной строке - то как я и говорил. сначала разгон до 10к, затем останов до нуля и тут же разгон до 10к в другую сторону.

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

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

ЧПУ выдало задание +10в шпиндель вращается по часовой. ЧПУ выдает мгновенно -10в. Шпиндель должен вращаться против часовой. Шпиндель физически не сможет резко крутануться в другу сторону. Чтобы ничего не сломалось, в настройках привода шпинделя настраивают разгон/торможение.
Если нет ОС, при старте шпинделя и реверсе в ЧПУ задается время на разгон шпинделя. Тогда ЧПУ при команде М3 или М4 будет ждать несколько сек, для разгона шпинделя. Только после этого продолжит выполнение Gcode. Это можно прописать в самой ЧПУ или в постпроцессоре.

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

Добавлено: 16 янв 2019, 23:19
aftaev
volomer писал(а):а что сделает ваша система если ей в MDI отдать команды S10000M3M4?
Разгонит шпиндель до 10000 по последней команде М4, игнорируя М3.

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

Добавлено: 16 янв 2019, 23:20
ScrewDriver
aftaev писал(а):
volomer писал(а):а что сделает ваша система если ей в MDI отдать команды S10000M3M4?
Разгонит шпиндель до 10000 по последней команде М4, игнорируя М3.
ваша не правда, выше отписал :hehehe:

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

Добавлено: 16 янв 2019, 23:23
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

Я хотел узнать что практики думают об этой проблеме или услышать, что это и не проблема вовсе.

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

Добавлено: 16 янв 2019, 23:23
aftaev
volomer, зачем тебе делать в Gcode М3 и М4 пусть даже с большим разбросом по времени? Пример?
Реверс шпинделя чаще всего применяют при циклах резьбонарезания метчиком.

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

Добавлено: 16 янв 2019, 23:25
aftaev
ScrewDriver писал(а):ваша не правда, выше отписал
Я предположил шо будет, а ты уже проверил :good:

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

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

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

Если сделать М4 в отдельной строке - то как я и говорил. сначала разгон до 10к, затем останов до нуля и тут же разгон до 10к в другую сторону.
Отлично, а если после M4 в отдельной строке будут другие строки программы, система дождется останова и разгона в другую сторону или продолжит выплнение?

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

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

Если хотите, проверю на станке в живую.
Но, если честно не вижу в этом необходимости. Это и так работает - когда в УП встречается например S10000 для черновой и дальше идет S15000 чистовая - станок останавливает перемещения и ждет, когда достигнет скорости.

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

Добавлено: 16 янв 2019, 23:41
ScrewDriver
Напишите отдельно - проверить? пока станок включен.

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

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