Решен ли вопрос "умного" продолжения работы?

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение torvn77 »

UAVpilot писал(а):Наверно потому, что понял разницу между кнопками Пауза и Стоп
Ну хорошо, давайте сделаем так:
но дополнительно к ней будет сделано две кнопки для входа и выхода из паузы по предложенному мной механизму.
оставим кнопку || пауза как она есть сейчас и сделать две дополнительные кнопки m|| и m> для входа и
выхода из паузы по предложенному мной механизму.
Это должно устроить и вас, и тех кто хочет совершать во время паузы какие либо действия.
Аватара пользователя
AndyBig
Мастер
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Репутация: 1121
Откуда: юг России
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение AndyBig »

torvn77 писал(а):написание конкретной суброутины для конкретного станка совершающего конкретные операции есть забота его владельца
Еще раз: как надо написать подпрограмму, чтобы пазовая фреза вышла из материала, учитывая, что пауза может быть нажата в любой момент, когда материал может быть с любой стороны от фрезы? Лично я считаю это принципиально невозможным, переубеди меня.
michael-yurov писал(а):ля mach3 есть настройка поднятия шпинделя на безопасную высоту при нажатии Стоп.
Для Стоп - да, для Паузы - не находил :)
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение torvn77 »

AndyBig писал(а): Лично я считаю это принципиально невозможным, переубеди меня.
  • Можно запомнить что инструмент T особенный и предусмотреть для этого специальную ветку суброутины.
  • torvn77 писал(а):При этом для запроса на совершение потенциально опасных действий запрашивается разрешение с помощью активного комментария
    (DIABOX, сообщение #<_x> #<_у> #<_z> ; cmd_согласия ; cmd_отказа; cmd_отмены )
    Какие действия являются опасными, а какие нет и выводить ли такой запрос вообще каждый пользователь решает для себя сам.
  • Суть предложения не в универсальном решении, а предоставлении средств для облегчения построения решения для конкретного станка
    и по этому то, как пользователь решит проблему с пазовой/фасонной фрезой вопрос не ко мне, а к пользователю.
    В общем сочинять конкретные суброутины каждый пользователь будет самостоятельно с учётом его производственных особенностей.
    Например производитель дверей зная как на станке будут лежать двери может ввести правило пяти зон:
    над дверью, справа, слева, с низу и с веру от двери.
    Но оформлять это правило в Gcode он будет уже сам, с учётом протекающих у него технологических процессов.
Последний раз редактировалось torvn77 09 мар 2016, 03:25, всего редактировалось 5 раз.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение Сергей Саныч »

UAVpilot писал(а):LinuxCNC подсвечивает строчку с текущим кадром... :)
Не знаю, как в последних версиях, может исправили чего, но в 2.7<какой-то prerealise> с этим напряжёнка.
При входе в подпрограммы помеченная строка бодро бежит по тексту основной программы, полностью дезориентируя оператора.
AndyBig писал(а):как надо написать подпрограмму, чтобы пазовая фреза вышла из материала
А не надо добиваться полной универсальности. Вроде как договорились, что она практически недостижима.
И что касается пазовых (дисковых) фрез, то, как правило, фрагменты программ с ними достаточно короткие, и не будет больших затрат времени на повторное выполнение с начала операции. А вот обработка концевой фрезой, а тем более гравировка - операции "времяёмкие", и для них возобновление более актуально.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение torvn77 »

  • Для выбора режима паузы надо бы предусмотреть отдельный М код, например М0.1 или М1.1
    Или договриться, что на М0 обычная пауза, а на М1 предложенная, коли по факту эти два кода сейчас совпадают.
  • Из соображение безопасности выполнения Gcode в версиях LinuxCNC без поддержки DIABOX ответ активного комментария DIABOX надо помещать в переменную #<_diabox_response>, которую перед использованием DIABOX обязательно обнулять.
    Выбор нужного действия будет осуществляться потом с помощью условий if или case при этом при нулевом значении этой переменной должна быть прописана выдача диагностического сообщения и остановка исполнения программы.

    Код: Выделить всё

    #<_diabox_response> = 0
    (DIABOX, сообщение #<_x> #<_у> #<_z> ; число_согласия ; число_отказа; число_отмены )
    O<dia_box_sys.pause> if [#<_diabox_response> eq 0] 
    (MSG, DIABOX error)
    (DEBUG, cmd_line = #<_cmd_line>)
    (DEBUG, _diabox_response = 0)
    M02
    O<dia_box_sys.pause> elseif[#<_diabox_response> eq число_отказа] 
    M02
    O<dia_box_sys.pause> elseif[#<_diabox_response> eq число_отмены]
    M02 
    O<dia_box_sys.pause> elseif[#<_diabox_response> eq число_согласия] 
    (Work continue)
    O<dia_box_sys.pause> else
    (MSG, DIABOX error)
    (DEBUG, cmd_line = #<_cmd_line>)
    (DEBUG, _diabox_response = #<_diabox_response>)
    M02
    O<dia_box_sys.pause> endif
    
    Для поддержания дисциплины в синтаксический анализатор можно ввести проверку на соответствие шаблону:

    Код: Выделить всё

    #<_diabox_response> = 0
    (DIABOX, * )
    O<*> if [#<_diabox_response> eq 0] 
    
П.С.
Сообщение в котором я собираю идеи дополнено.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение Nick »

Давайте ближе к конструктиву. Давайте решать разные виды задач для разных станков. Тут пишем про фрезер гравер!
Про лазеры и бластеры - дуйте в отдельную тему :).
Вот тут solo все очень хорошо придумал для простого фрезера/гравера:
Re: Решен ли вопрос умного продолжения работы? #4
Что надо для простого фрезера/гравера.
  • Остановиться, запомнить строку и место. - Клавиша Esc + надо запомнить место и строку. Если сделаем отдельные кнопки на панель для перемещений
    • Поднять фрезу.
      G53 G0 Z0
      M5
    • Уехать в нули.
      G53 G0 X0 Y0
      M5
  • Как запомнить координаты строку... можно писать каждый раз при смене кадра текущие координаты и номер кадра. Делать это можно все в servo-thread. Потом сможем вернуться назад.
    Надо просто подобрать нужные компоненты... Есть предложения?
  • Возвращение назад - две кнопки -
    G53 G0 Z0 (надо?) G0 X[..] Z[... ]
    и
    G1 Z[... ]
  • Включение шпинделя отдельной кнопкой? Или можно к кнопке G1 Z[... ] приделать галку - "включать шпиндель?" и в mdi комманде прописать O<xxx> IF [] внутри которого будет M3.
Надо что-то еще?
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение NightV »

Nick писал(а):Тут пишем про фрезер гравер!
Про лазеры и бластеры - дуйте в отдельную тему
а меня с токаркой, списал со щитов? :)
возьмите маня к себе в банду! :freak: тем более агоритм, как работает у меня, я описал :)
Всё просто! если знаешь КАК!
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение torvn77 »

Nick писал(а):Вот тут solo все очень хорошо придумал для простого фрезера/гравера:
А смысл это обсуждать, такое я могу и сам сделать.
Ну вот ещё решение для зацикливания программы: Re: помогите новичку разобраться #35
Этот же принцип можно применить и для входа в паузу, если подменить вызов G0 на суброутину, которая делает нечто большее,
чем просто проезд в указанную точку.
В неё можно встроить опрос пинов hal_input и тогда ещё джойстиком без остановки УП управлять можно.
При этом, не смотря на кучу потраченных усилий всё равно придётся в крохотном окошке для просмора Gcod'a искать единственную нужную для старта строку из 100500 других строк.
Записывать, потом забивать обратно, вводить ещё кучу параметров рискуя что нибудь забыть или напутать.
Это если не забыл чего нибудь записать.
И главное зачем ради этого превращать УП в пользовательский шелл?
(По сути то она им и станет)
Последний раз редактировалось torvn77 10 мар 2016, 04:21, всего редактировалось 3 раза.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение torvn77 »

Nick, Я тут нписал, как по моему мнению это надо сделать.
Как я думаю, для реализации этого надо будет в основном добавлять функционал, а не переписывать или менять работу.
Как тебе написанное?
Re: Решен ли вопрос умного продолжения работы? #108
При чём для моего предложения не важно, какой станок будет, пусть хоть гексапод.
Нужные уточнения пользователь может внести сам.
Аватара пользователя
mycnc
Мастер
Сообщения: 913
Зарегистрирован: 03 июл 2011, 02:01
Репутация: 623
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение mycnc »

torvn77 писал(а):
UAVpilot писал(а):Пауза и Стоп
Во время паузы ручное управление заблокировано, что делает её в нынешнем виде совершенно бесполезной.
Ну разве что если нет твёрдой уверенности в том что программу надо прерывать, то её можно использовать как обратимый стоп.
Но и всё.
Забавно. А у меня фактически нет разницы между Пауза и Стоп. Всегда выполняется Стоп. Он обратимый, то есть можно подвигаться вручную, потом вернуться на путь программы и продолжить выполнение дальше. Шпиндель включится автоматически. Можно и с автоматическим возвратом на путь программы по заданному алгоритму (типа сначала подняться, поворотка, переехать XY , включить шпиндель, опуститься и поехать по программе). Конечно, это покрывает не 100% возможных вариантов, но 90% уж точно. Ретрограды просят классическую паузу, поэтому сделали и ее.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение torvn77 »

mycnc писал(а):Ретрограды просят классическую паузу, поэтому сделали и ее.
А почему просто не сдел возможности написать макрос входа-выхода из паузы?
Тогда вместо двух кнопок была бы одна, а "ретрограды" просто бы сидели с пустым макросом.

П.С. А ещё можно сделать выпадающие списки для выбора макросов входа и выхода из паузы.
Тогда получается четыре кнопки вход с прерыванием кадра, вход в конце кадра, выход в начало кадра, выход в конце кадра из паузы и два списка входного и выходного макроса.
Ну а чтобы не думать как их формировать сделать две директории, макросы лежащие в одной считаются входными, в другой выходными.

Можете попробовать сделать такое у себя mcnc.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение Nick »

mycnc писал(а):А у меня фактически нет разницы между Пауза и Стоп. Всегда выполняется Стоп.
На токарке шпиндель выключится в паузе?
NightV писал(а):а меня с токаркой, списал со щитов?
возьмите маня к себе в банду! тем более агоритм, как работает у меня, я описал
В отдельную тему! :tongue: В токарке все по другому!
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6610
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение NightV »

Nick писал(а):В токарке все по другому!
разница лиш в том, что на фрезере вращается инструмент, а в токарке заготовка, ну и еще работа только в одной плоскости :)
Всё просто! если знаешь КАК!
nik1
Мастер
Сообщения: 8408
Зарегистрирован: 02 окт 2012, 07:37
Репутация: 3629
Откуда: Красногорск
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение nik1 »

В токарке возврат сделан по 2 кнопкам
оператор должен сам задать по какой координате делать первый возврат, в зависимости от вида обработки
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение Nick »

Сергей Саныч, как есть результаты?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение Сергей Саныч »

Nick писал(а):как есть результаты?
Не, нету :) Вначале надо с подпрограммами вопрос решить. Если нажать ESC в подпрограмме, то на нужный уровень вложений уже не вернуться.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение Nick »

Сергей Саныч писал(а):Если нажать ESC в подпрограмме, то на нужный уровень вложений уже не вернуться.
В принципе разумно. Не надо нажимать стоп - надо нажимать паузу.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение Сергей Саныч »

Nick писал(а):Не надо нажимать стоп - надо нажимать паузу.
Но на паузе ничего не сделаешь, кроме продолжения. Правда, какие-то варианты "активной паузы" предлагались, но я пока не разобрался и не рискнул попробовать.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: Решен ли вопрос "умного" продолжения работы?

Сообщение torvn77 »

Мне в вконтакте задачку подкинули:
Столкнулся с проблемой, достаточно специфичной чтобы задуматься)
Требуется кроить фанеру и делать в ней прорези лазером с четко фиксированной шириной реза.
И все бы ни чего, да фанера имеет свойство в разных направлениях резаться по разному.
А соответственно требуется разные скорости перемещения по разным осям.
Причем не жестко фиксированные в постпроцессоре, а выставляемые в процентном соотношении по каждой из осей в отдельности. Это как крутилка которая есть по умолчанию в интерфейсе от 0 до 120, только 2 для оси X и оси Y.
Может уже где-то обозначал такой вопрос, но вот все ни как не найду красивого решения.
Думаю в постпроцессор лезть и там как-то колдовать каждый раз, или можно в интерфейс что-то нахимичить?
Скорости должны получится разные, но их надо актуально менять прям во время реза. Оператор поставил на паузу станок, померил ширину реза, подредактировал скорость, мощность лазера и пустил дальше..
Я считаю что его задача решаема, но вот действия которые он хочет выполнять во время паузы требуют отдельных инструментов.
Будете принимать мои предложения по развитию диалоговых средств G-Cod'a?
Ответить

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