КУЛИБИН ПОМОГИТЕ Кто опытный и мудрый помогите

но походу это именно какая то команда возобновления цикла
Это возобновит работу после паузы (режим Hold) или после команды открытия двери, но не заставит управляющий софт заново передавать строки УП.

Я не совсем понял ее назначение
Этточно :)
 

тезка, как всегда, само внимание...:) Реле уже за автоматику не считает.

оффтоп

Реле были перед лампами (в компах точно), так что это доламповый исторический период и я ещё соптимистил...:)

оффтоп
 
  • Последнее редактирование:
Последнее редактирование:
Это возобновит работу после паузы (режим Hold) или после команды открытия двери, но не заставит управляющий софт заново передавать строки УП.


Этточно :)
Тогда можно блоки попробовать наверное,

$N – Обзор стартовых блоков
$Nx - стартовые блоки, которые Grbl запускает каждый раз, когда Вы подаете питание на Grbl или перезагружаете Grbl. Другими словами начальный блок – строки G-кода, показывающие автоматически предустановки Grbl, или что-либо еще, нужное вам в Grbl, делающие это каждый раз, когда Вы запускаете свой станок. Grbl может сохранить два таких блока G-кода как настройки системы по умолчанию.
Так, когда произошло соединение с Grbl, напечатайте $N и затем нажмите Enter. Grbl должен ответить примерно так:
$N0=
$N1=
Ok
Это не означает, что запуск невозможен, это только показывает, что нет сохраненных блоков G-kода, которые могут быть показаны в строке $N0, которые нужны для запуска. $N1 - следующая строка, которая будет запускаться.

$Nx=строка – Сохранить стартовые блоки

Внимание! Будьте очень аккуратны, когда сохраняете команду на какое-либо движение (G0/1, G2/3, G28/30) в начальных блоках. Эти команды движения будут запускаться каждый раз, когда Вы перезагружаете или включаете питание на Grbl. Поэтому неверно записанная команда на движение может привести к сбою в работе или даже аварии. Кроме того, не вводите туда команды, которые сохраняют данные в EEPROM, такие как G10/G28.1/G30.1. Это заставит Grbl постоянно переписывать эти данные при каждом новом включении питания и перезагрузке, и в конечном счете могут быть стёрты данные в EEPROM Вашего Ардуино.
Типичное использование начального блока состоит в том, чтобы просто хранить Ваши привилегированные режимы, такие как выбор единиц измерения (мм или дюйм) G20, координаты станка «по умолчанию», или чтобы пользователь мог управлять некоторыми, написанными им самим программами (блоками), которые нужны для его проекта.

Чтобы установить начальный блок, напечатайте $N0 = за которой следует действительный (рабочий) блок G-кода и дайте Enter. Grbl запустит блок, чтобы проверить, действительно ли всё в норме, и затем ответит, всё ли в порядке или есть ошибка. Если будет ошибка, то Grbl не будет это сохранять.

Например, Вы хотите использовать свой первый стартблок $N0, чтобы установить анализатор G-кода – например, рабочие координаты G54, систему измерения (мм – inch) G20, поверхность XY G17. Вы напечатали бы $N0=G20 G54 G17 с командой Enter, и увидите ответ 'хорошо'. Можно тогда проверить, было ли это сохранено, напечатав $N, и теперь увидите ответ в виде: $N0=G20G54G17.

Как только Ваш стартблок сохранился в EEPROM Грбл, то каждый раз при включении питания или перезагрузке, Вы будете видеть Ваш начальный блок, напечатанный Вами ранее, и ответ от Grbl, который скажет, всё ли прошло хорошо. Так для предыдущего примера, Вы будете видеть:
Grbl 0.9i [' $' для помощи]
G20G54G17ok

Если у Вас будет несколько начальных блоков G-кода, то они будут распечатаны в начале каждой новой работы (включения). И если Вы хотели бы уточнить состояние одного из блоков, (например, блока 0), напечатайте $N0 = без никакого знака после :)).
Кроме того, если у Вас будет разрешено возвращение в базовую позицию (homing), то начальные блоки немедленно выполнят это после цикла возврата, а, не при новом запуске.

В каждом блоке записать перемещение одной из оси, а в конце всех блоков сделать мягкую перезагрузку , по идее должно сработать ибо блоки начнут отрабатываться сразу после перезагрузки, вот только останавливать придется физическим отключением питания,
Опять наверное фигню сморозил. Хотя можно попробовать такое к примеру:
$N0=G91
$N1=G0X10
$N2=G0Y10
.....
$N...= G0Z-10
Ctrl-x
Похоже как то так
 
Опять наверное фигню сморозил.
Да нет, такая штука в GRBL имеется, но есть пара НО:
1. вдруг автору придётся изготавливать другие загогулины, или загогулины с большим количеством команд - то уже можем не уложиться в размер EEPROM + для других загогулин придётся переписывать весь стартовый блок.
2. Самое прискорбное, что резет из G-кода не сделать.
На команду 0x18 мы получим сообщение об ошибке, т.к. это воспримется, как несколько символов, включая символ конца строки. Команда резет передаётся одним символом с кодом 0x18, а он относится к группе управляющих кодов таблицы ASCII и напечатать его его не удастся.

Так что мой вариант, возможно, не так уж и утопичен. :)
 
  • Последнее редактирование:
Последнее редактирование:
Да нет, такая штука в GRBL имеется, но есть пара НО:
1. вдруг автору придётся изготавливать другие загогулины, или загогулины с большим количеством команд - то уже можем не уложиться в размер EEPROM + для других загогулин придётся переписывать весь стартовый блок.
2. Самое прискорбное, что резет из G-кода не сделать.
На команду 0x18 мы получим сообщение об ошибке, т.к. это воспримется, как несколько символов, включая символ конца строки. Команда резет передаётся одним символом с кодом 0x18, а он относится к группе управляющих кодов таблицы ASCII и напечатать его его не удастся.

Так что мой вариант, возможно, не так уж и утопичен. :)
Прошу сильно не ругаться, я только учусь, и похоже 4тый год в первом классе.
Ваши сообщения автоматически объединены:

Да нет, такая штука в GRBL имеется, но есть пара НО:
1. вдруг автору придётся изготавливать другие загогулины, или загогулины с большим количеством команд - то уже можем не уложиться в размер EEPROM + для других загогулин придётся переписывать весь стартовый блок.
2. Самое прискорбное, что резет из G-кода не сделать.
На команду 0x18 мы получим сообщение об ошибке, т.к. это воспримется, как несколько символов, включая символ конца строки. Команда резет передаётся одним символом с кодом 0x18, а он относится к группе управляющих кодов таблицы ASCII и напечатать его его не удастся.

Так что мой вариант, возможно, не так уж и утопичен. :)
Так вроде задача то простая была дана изначально, вот правда как изменить потом программу я даже ума не приложу, зациклив, ардуинка каждый раз будет уходить в цикл при включении, а как перепрошить чип в цикле я даже догадаться не могу, хотя нет придумал, нужно не делать сброс, а поставить на гильяьинку )или что там ещё при резке будет активироваться и сделать так что бы она нажимала и отпускала кнопку сброса на самой плате механически, или на разьеме для сброса тогда цикл можно прервать просто убрав связь между кнопкой и "гильятинкой" , ну и мудрено же все получается как то, на обычном движке проще все организовать, хотя бы отрезной сделать двигатель сделать простым а не шаговым, тогда хоть можно было бы использовать команду М3 а кнопку (концевик) расположить так что бы сработка была кратковременной и инерция движка выводила бы концевик из положения нажатия.
 
Мужики, какую роль в этом станочке будет играть GRBL? Тремя шагалками пошевелить? Не проще ли включить туда только модуль шагалки из ArduinoIDE, и написать отдельную программу управления. Регулировку и настройку через меню набором переменных. Вполне в 30кБ уложить можно.
 
Во, дядя Вова правильные слова знает, примерно это и хотел предложить, только слов умных (модулей в ардуине иде) не знаю.
 
Мужики, какую роль в этом станочке будет играть GRBL? Тремя шагалками пошевелить? Не проще ли включить туда только модуль шагалки из ArduinoIDE, и написать отдельную программу управления. Регулировку и настройку через меню набором переменных. Вполне в 30кБ уложить можно.
Думаю вполне реально... Для задания нужных величин использовать переменную, которая будет управлять таймером... Таймер в свою очередь уже даёт ШИМ или нужное кол-во импульсов для мотора... На нужную длину отматывать - один таймер, на угол поворота - другой...
(я к примеру, прошу сильно не пинать)
 
Таймер в свою очередь уже даёт ШИМ или нужное кол-во импульсов для мотора... На нужную длину отматывать - один таймер, на угол поворота - другой...
Проще задавать циклы шагания, таймерами неудобно. Переменные хранить в EEPROM, та надо то, по паре байт на движок, может чуть больше. Из меню можно регулировать и длину и углы, запуск и останов можно контролировать условно-бесконечным циклом и переходом в меню (разумеется с организацией дисплея с кнопками).
 
  • Последнее редактирование:
Последнее редактирование:
Наверно я, самый опытный и мудрый:)
2 и 3 шаги. Проблема решена.
 
Действительно, зачем изобретать велосипед... :rolleyes:
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

МЫ ДОГАДЫВАЕМСЯ, ЧТО РЕКЛАМА ВАС РАЗДРАЖАЕТ!

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

Спасибо за Ваше понимание!

Я отключил свой AdBlock    Нет, я не буду ничего отключать