Страница 6 из 7

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

Добавлено: 08 мар 2016, 19:08
shalek
Точно. Я выше поправился.

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

Добавлено: 08 мар 2016, 19:48
torvn77
Вот вы всё флудите, уже о гуёвом окошке спорите, а как быть с не глобальными переменными если выполнение УП ставили на паузу во время вызова суброутины?
:tongue:
А если было несколько вложенных вызовов суброутин?
:lol: :lol: :tongue:

В качестве предварительного решения можно предложить откладывание наступления паузы до момента полного возвращения из всего дерева суброутин, в конце концов надобность встать на паузу это не авария.

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

Добавлено: 08 мар 2016, 20:34
Serg
torvn77 писал(а):А если было несколько вложенных вызовов суброутин?
Вот ты обижаешься, что тебя не понимают, но как можно понять человека, разговаривающего придуманными словами?.. :)

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

Добавлено: 08 мар 2016, 20:55
torvn77
Главное чтобы ты и nkp поняли. :hehehe:
П.С.
Вообще имхо если человек писал ini вручную по мануальнику, то что такое суброутина должен понять сразу.
Но как ни странно не понимаете именно вы, хотя вроде как опытный программист и должны были понять сразу.

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

Добавлено: 08 мар 2016, 21:37
Serg
Я такого слова не знаю.
Знаю например слова подпрограмма, subroutine, manual, но на твои это слабо похоже, даже по произношению.

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

Добавлено: 08 мар 2016, 21:41
torvn77
UAVpilot писал(а):даже по произношению
Хорош притворяться:
s|u|b|r|o|u|t | i|n|e
с|у|б|р|о|у|т|и|н|а
Ну а уж м|а|н|у|а|л|ьник наверно раньше чем я купил i486 в сети появился
_ _____m|a|n|u|a|l

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

Добавлено: 08 мар 2016, 22:30
Serg
Это не русский и не английский, а вообще непонятно какой язык. :(

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

Добавлено: 08 мар 2016, 22:40
torvn77
Давай лучше вот о чём поговорим:
  • Оператор нажимает кнопку пауза
  • В соответствии с указанным в соответствии с указанным в теле NC программы активным комментарием (pause_pre_code) или (pause_post_code) ЧПУ
    либо дожидается окончания работы текущего кадра
    либо прерывает работу прямо во время выполнения кадра
    если в этот момент выполняется суброутина то делается тоже самое, но только уже для суброутины в целом.
    После чего в переменной #<_pause_return_string> запоминается номер кадра, в котором произошла остановка.
  • Вместо следующего кадра выполняется написанная пользователем ЧПУ суброутина O<sys.programm_pause>
    которая по усмотрению пользователя сохраняет переменные окружения,
    в частности позицию станка и производит отвод инструмента указанным пользователем способом,
    в том числе по параметрическому пути (x,y,z)=f(t)
    При этом для запроса на совершение потенциально опасных действий запрашивается разрешение с помощью активного комментария
    (DIABOX, сообщение #<_x> #<_у> #<_z> ; cmd_согласия ; cmd_отказа; cmd_отмены )
    Какие действия являются опасными, а какие нет и выводить ли такой запрос вообще каждый пользователь решает для себя сам.
  • Разблокировывается ручное управление
  • Оператор делает что ему надо
  • Оператор снимает станок с паузы
  • Блокируется ручное управление
  • Выполняется написанная пользователем ЧПУ суброутина O<sys.programm_unpause>
    которая по усмотрению пользователя восстанавливает переменные окружения и производит подвод инструмента указанным пользователем способом,в том числе по параметрическому пути (x,y,z)=f(t)
    При этом для запроса на совершение потенциально опасных действий запрашивается разрешение с помощью активного комментария
    (DIABOX, сообщение #<_x> #<_у> #<_z> ; cmd_согласия ; cmd_отказа; cmd_отмены )
    Какие действия являются опасными а какие нет и выводить ли такой запрос вообще каждый решает для себя сам.
  • В соответствии с указанным в теле NC программы активным комментарием (pause_pre_code) или (pause_post_code) выполняет
    либо кадр следующий за кадром на котором была остановка.
    либо кадр который следует после того, на котором произошла остановка.
  • По умолчанию LinuxCNC поставляется с суброутинами имеющими пустое тело или выводящим сообщение с помощью активного комментария (MSG, ...)
  • При отсутствии в начале УП активных комментариев (pause_pre_code) или (pause_post_code) УП на выполнение запускаться не должна.
  • Допускается в основном теле УП и вызываемых им суброутинах не ограниченное повторное переключение режима активными комментариями (pause_pre_code) или (pause_post_code) включая работающею во время паузы консоль MDI.
  • По умолчанию суброутины должны находится в папке ncsubroutines/sys в основной директории конфига.
    (Чтобы пользователю их полегче найти было)
  • Имеет смысл сделать активный комментарий (set_return_pause_string, число) позволяющий произвольно назначать номер строки в переменной #<_pause_return_string> для возврата из паузы.
  • Есть смысл оставить кнопку || пауза как она есть сейчас и сделать две дополнительные кнопки m|| и m> для входа и
    выхода из паузы по предложенному мной механизму.
    • Так же возможно стоит сделать две раздельных кнопки для возврата из паузы в текущий "<m" и последующий "m>" кадр УП.
  • Для выбора режима паузы надо бы предусмотреть отдельный М код, например М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] 
    

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

Добавлено: 08 мар 2016, 22:43
AndyBig
torvn77 писал(а):s|u|b|r|o|u|t | i|n|e
с|у|б|р|о|у|т|и|н|а
Тебе спеакают что у ворлда SUBROUTINE есть комплетели адекватный и фулльный аналог в русском лангуаге - подпрограмма. Ты же не спеакаешь инстеад "мама" - "мотхер". Или "миллинг мацхине" инстеад "фрезерный станок".
И как твоя "суброутина" сможет обработать, к примеру, выход в сторону при работе с дисковой горизонтальной (пазовой) фрезой? Она же ни сном ни духом с какой стороны от фрезы материал и куда нужно отвести эту фрезу.

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

Добавлено: 08 мар 2016, 22:47
torvn77
AndyBig писал(а):И как твоя "суброутина" сможет обработать, к примеру, выход в сторону при работе с дисковой горизонтальной (пазовой) фрезой? Она же ни сном ни духом с какой стороны от фрезы материал и куда нужно отвести эту фрезу
Как правильно замечает UAVPilot, задачи могут быть самые не определённые по этому написание конкретной суброутины для конкретного станка совершающего конкретные операции есть забота его владельца, пользователя или настройщика.
torvn77 писал(а):По умолчанию LinuxCNC поставляется с суброутинами имеющими пустое тело или выводящим сообщение с помощью активного комментария (MSG, ...)

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

Добавлено: 08 мар 2016, 22:58
Serg
torvn77 писал(а):Как правильно замечает UAVPilot, задачи могут быть самые не определённые по этому написание конкретной суброутины для конкретного станка совершающего конкретные операции есть забота его владельца, пользователя или настройщика.
Так я и говорю, что 6 страниц этой темы не имеют смысла - ответ был дан во втором посте. А частные улучшения/дополнения просто берёшь и делаешь, тут и обсуждать нечего. :)

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

Добавлено: 08 мар 2016, 23:03
torvn77
UAVpilot писал(а):Так я и говорю, что 6 страниц этой темы не имеют смысл
Тема смысл имеет, потому что вы никак не поймёте, что штатных средств для решения этой задачи нет,
надо заниматься колхозом с исходниками, что как минимум не каждому по силам, не говоря уж о том, что произойдёт при попытке обновится.
Программирование же GCode это 7-8 класс средней школы и должно быть по силам каждому.
Ну может потребуется дать объяснения гуманитарию, но гдето за неделю три это понять сможет
И я всю тему пытаюсь это вам объяснить, но вы никак не поймёте.

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

Добавлено: 08 мар 2016, 23:08
Serg
И видимо никогда не пойму. Наверно потому, что понял разницу между кнопками Пауза и Стоп и у меня нет никаких проблем с остановкой УП и последующим продолжением...

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

Добавлено: 08 мар 2016, 23:12
torvn77
UAVpilot писал(а):Пауза и Стоп
Во время паузы ручное управление заблокировано, что делает её в нынешнем виде совершенно бесполезной.
Ну разве что если нет твёрдой уверенности в том что программу надо прерывать, то её можно использовать как обратимый стоп.
Но и всё.

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

Добавлено: 08 мар 2016, 23:13
michael-yurov
shalek писал(а):Единственный момент: Если из паузы продолжать работу кнопкой пуск, то при нахождении шпинделя в нужной координате может не хватить время на разгон шпинделя и обработка может пострадать.
Так нужно в настройках NCStudio прописать время, необходимое на разгон шпинделя. Тогда программа будет ждать сколько нужно.
shalek писал(а):При постановке на паузу - шпиндель не отключается.
Галочка есть в настройках.
AndyBig писал(а):Не видел такого... Жмешь паузу - просто останавливается движение после очередного кадра, шпиндель не выключается. Жмешь после этого старт - движение возобновляется. Может быть поведение при паузе где-то настраивается? Не интересовался, честно говоря
Для mach3 есть настройка поднятия шпинделя на безопасную высоту при нажатии Стоп.

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

Добавлено: 08 мар 2016, 23:20
torvn77
UAVpilot писал(а):Стоп и у меня нет никаких проблем с остановкой УП и последующим продолжением.
Координаты инструмента и номер строки ручкой на бумажку записываете?
(для просмотра содержимого нажмите на ссылку)
Меня ваш вариант не устраивает по нескольким причинам.
1)Мои УП могут весить мегабайт или два с соответствующим количеством строк и поиск строки являющиеся точкой входа в траекторию просто не возможен.
2)При выполнении всяких сервисных суброутин у меня обычно сбрасывается состояние станка и восстановление его как правило приводит к операторским ошибкам,
по этому вас удивит, но помере автоматизации и появления безусловно выполняемых операции аварий в целом у меня стало меньше.
То есть следование вашей позиции для меня означает росто аварийности, порчи инструментов и заготовок.

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

Добавлено: 08 мар 2016, 23:25
Serg
torvn77 писал(а):Координаты инструмента ручкой на бумажку записываете?
Зачем? Они в УП в предыдущем кадре написаны. :) Опять-же можно в какой-нибудь свободной СК запомнить.

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

Добавлено: 08 мар 2016, 23:29
torvn77
Меня ваш вариант не устраивает по нескольким причинам.
1)Мои УП могут весить мегабайт или два с соответствующим количеством строк и поиск строки являющиеся точкой входа в траекторию просто не возможен.
Что за точка входа смотрите здесь: Re: Постпроцессор для ArtCam'а к LinuxCNC #18
2)При выполнении всяких сервисных суброутин у меня обычно сбрасывается состояние станка и восстановление его как правило приводит к операторским ошибкам,
по этому вас удивит, но по мере автоматизации и появления безусловно выполняемых операции аварий в целом у меня стало меньше.
То есть следование вашей позиции для меня означает ростом аварийности, порчи инструментов и заготовок.

По этому я бы очень хотел средства автоматизации процесса.

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

Добавлено: 08 мар 2016, 23:37
Serg
torvn77 писал(а):и поиск строки являющиеся точкой входа в траекторию просто не возможен
LinuxCNC подсвечивает строчку с текущим кадром... :)
torvn77 писал(а):При выполнении всяких сервисных суброутин у меня обычно сбрасывается состояние станка
ССЗБ. У меня не сбрасывается. :)
torvn77 писал(а):По этому я бы очень хотел средства автоматизации процесса.
Руки связывают и текстовый редактор отнимают?.. :)

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

Добавлено: 08 мар 2016, 23:38
torvn77
Проект входа и выхода из паузы дополнен, просьба пересмотреть его и перечитать.
Re: Решен ли вопрос умного продолжения работы? #108
UAVpilot писал(а):Руки связывают и текстовый редактор отнимают?.. :)
Хорошо, вам ничто не помешает оставить суброутины пустыми и продолжать мучится с текстовым редактором дальше.
А я запонив их тело смогу сделать так, как мне удобно.
Вот и будет всё замечательно, и у меня, и у вас.