ВОПРОС Конфигурация FluidNC

Budek

ЧТО-ТО УЖЕ ЧИРКАНУЛ
Регистрация
27.11.2023
Сообщения
0
Реакции
1
Баллы
2
Город
Уфа
Всем здравия!
Как можно сконфигурировать ось A (или реализовать иным способом) задачу:
необходимо начать вращение шагового двигателя до команды его отмены.
Как M08 включает (неограниченно), выполняются следующие команды, M09 - выключает.
Пусть будет команда G91 A1000... Но ведь пока она выполняется, мы не можем ничего слать в контроллер...
Спасибо!
 
(или реализовать иным способом)
Скорее всего именно иным способом через "user_outputs: "
Цитирую:
"
analog0_pin: NO_PIN Аналоговый пин0: Используется для выхода ШИМ. Управляется M67, М68.
Например- M67 E0 Q53.87
М68- Немедленная установка аналогового значения.
М67- Синхронизированное заданное аналоговое значение.
Е0- Выход "analog0_pin..." (E1- analog1, E2- analog2)
Q53.87- Аналоговое значения в процентах 53.87%.
Эти команды можно посылать из консолей приложений, вписать их в G код,
вписать в пользовательские кнопки или использовать готовые из приложений.
"
Нужно будет рассчитать и установить частоту для нужной скорости вращения и задать её:
"analog0_hz: 5000 Аналоговая частота Гц: Частота для аналового выхода0 "analog0_pin: NO_PIN"."

Если же решать через ось А, то, как вы правильно сказали, контроллер будет ждать выполнения команды.
 
Более подробное описание даст лучшее понимание задачи. Для чего нужно непрерывное вращение? Токарная ось? Расточной станок? Сверлильный? Что именно нужно делать? Почему именно ШД?
 
Ребята, спасибо, что откликнулись!
Вообще тема дебильная... Станок, наливающий двухкомпонентный силикон в пластиковый корпус (делается прокладка для герметичности).
Первый станок уже лет 5 пашет под мачем. То есть реле по M08 включает клапана - силикон пошел. Гоняем "шприц" - клапаны открыты. В конце траектории закрываем (M09).
Но проблема оказалась в том, что давление на силикон не гарантирует постоянства расхода (вязкость гуляет). И ребята (станок в Москве, а я в Уфе) заколхозили гидравлические насосы от радиоуправляемых машинок!!! Да, я тоже обалдел. Насос, на котором висит бесколлекторник (в базе) используется в роли дополнительного "клапана".То есть его шестерни (вращаять примерно 1 оборот в минуту) позволяют силикону под преддавлением проходить с постоянным (условно) расходом вне зависимости от его вязкости. По хорошему, нужен "бесконечный шприц и винтовым приводом поршня" (я это так назвал), но конструкцию не придумал... Поэтому приходится подстраиваться под текущее. То есть задача: клацнули реле - открыли основные клапана, начали крайне медленно крутить 2 шаговика -> бегаем по траектории, льем силикон -> закончили разливку: выключаем клапана и останавливаем шаговики.

user output в виде шима вряд ли подойдет. надо ведь не скважность регулировать, а частоту шима. Хотя, по сути ее регулировать не надо, вроде как у них скорость вращения шаговиков не меняется. Но тут проще параллельно с релюхой сделать примитивный генератор, который и будет степить шаговики (при таких скоростях ускорение не нужно).
Пока останавливаюсь на таком решении: будут оси A и B. Просто в каждой строчке кода перемещений по X и Y придется добавить еще и "перемещение" по A и B (высчитав значения..). Благо, цикл заливки одного корпуса - строчек 20... Давно было, писал сам для мача... Циклы, переменные... Что FluidNC не глотает (придется еще какую то прогу сварганить, чтоб из циклов делать тупой набор строк).
Просто хотелось на будущее... А это костыль.
Ведь задача то примитивная. Как шпиндель: можем же включть (с нужной скоростью), поработать, выключить... Или подача жижи релейная (M08 / M09). А тут просто вместо этого степы раздавать драйверам.
Кстати, по поводу "бесконечного шприца с винтовым приводом"... НЕ давлением!!! Вдруг у кого идеи будут, как реализовать... Отблагодарим.
Спасибо!!!
 
  • Последнее редактирование:
Последнее редактирование:
Кстати, по поводу "бесконечного шприца с винтовым приводом"... НЕ давлением!!! Вдруг у кого идеи будут, как реализовать...
А что стоит приспособить для привода "шприца" привод оси Z, шаговый, между прочим. И дозу можно подобрать стабильнее и ускорение, опять же, нужное подобрать. А клапана на А3 А4 прицепить (М7, М8, М9).
 
сделать примитивный генератор, который и будет степить шаговики
Так user output и будет этим генератором. Там частоту можно любую задавать. Зачем дополнительный генератор?
 
А что стоит приспособить для привода "шприца" привод оси Z, шаговый, между прочим. И дозу можно подобрать стабильнее и ускорение, опять же, нужное подобрать. А клапана на А3 А4 прицепить (М7, М8, М9).
1. так ось Z нужна сама. шприц то должен опускаться/подниматься. И потом, а как сделать следующее (хорошо, на примере оси Z):
G91 (для порядку...)
Z1000 (начинаем вращать - подавать силикон)
X100 Y200 (поехали разливать...)
нет ведь... надо в одной строке писать:
X100 Y200 Z??? (вот и надо высчитать, а сколько указать в Z (объем силикона) с учетом пробега по X и Y. И так ручками в каждой строке УП.
К этому и пришел. Только зачем "тратить" на это Z, когда все это сделают A и B.

По идее надо что то типа по аналогии со шпинделем, как у него:
M3 S1000 (начали подачу силикона)
X-ы Y-ки, Z-ты (бегаем, льем)
M4 (выключили течку)
Причем, если как у шпинделя, можно было б и скорость задать, вообще хорошо.
По сути то и нужен шпиндель...Но у FluidNC в качестве шпинделя только шим.

Так user output и будет этим генератором. Там частоту можно любую задавать. Зачем дополнительный генератор?
Искал, но не нашел... Вроде как G-кодом нельзя задать частоту шима. Только скважность. А переписывать (подбирая нужную на сегодня скорость) конфиг-файл... Проще уж внешний генератор с примитивным переменником на частоту.

пиши ось x 10 000 километров и подача если у тебя 300 мм в минуту , на долго хватит
не понял, как это...
 
  • Последнее редактирование:
Последнее редактирование:
Там частоту можно любую задавать.
Только частота задаётся в конфиге. А при внешнем генераторе можно регулировку сделать.

А клапана на А3 А4 прицепить (М7, М8, М9).
Это ESP, там выходы по другому сделаны. Все выходы ESP можно переназначать в конфиг-файле и можно сделать дополнительно ещё 8 цифровых и 4 аналоговых пользовательских выхода управляемых командами M62, M63, M64, M65, M67, M68.

Тем более цифровые выходы можно сделать через микросхему расширения (74AHCT595).
 
А что стоит приспособить для привода "шприца" привод оси Z, шаговый, между прочим. И дозу можно подобрать стабильнее и ускорение, опять же, нужное подобрать. А клапана на А3 А4 прицепить (М7, М8, М9).
пардон... уже голова кругом. не догнал, что вы про другое...касаемо идеи "шприца": какой осью его толкать - это дело десятое. Как реализовать его "бездонность"?
В голове только: периодически (или когда шприц на исходе:
открываем клапан и подаем преддавлением новую "перезаправку" между поршнем и его выходом, но синхронно (ну или как то) таща поршень назад. Но надо по хорошему и на выходе заиметь клапан (чтоб из его носа в это время не полилось тоже) или откатываться в "технологическую" зону для перезарядки. Но это уж колхоз совсем. причем удвоенный (силикон двухкомпонентный).

вот так это выглядит сейчас:
 

Вложения

  • photo_2023-12-15_20-02-40.jpg
    photo_2023-12-15_20-02-40.jpg
    120.8 KB · Просмотры: 23
Короче думаю коды надо учить , и использовать программное -И- и -ИЛИ-

Двигатель крутится если кнопка остановки не нажата.
Надо вам это как то прописать.

Возможно надо две кнопки на старт программы и на остановку.

Старт тоже нужно грамотно запрограммировать , старт будет если , датчики крайнего положения или там всякие температурные ограничения не сработали ,
если они сработали то при нажатии на кнопку старт ничего не произойдет ,

Щас сам это изучаю ,медленно. Но покопай с простого , элементы -И- и -ИЛИ-

потренеруйся на простом - на реле к примеру в симуляторе , потом мышление перейдет на программу ардуино.
Это на два месяца.Потом проще будет
 
Короче думаю коды надо учить , и использовать программное -И- и -ИЛИ-

Двигатель крутится если кнопка остановки не нажата.
Надо вам это как то прописать.

Возможно надо две кнопки на старт программы и на остановку.

Старт тоже нужно грамотно запрограммировать , старт будет если , датчики крайнего положения или там всякие температурные ограничения не сработали ,
если они сработали то при нажатии на кнопку старт ничего не произойдет ,

Щас сам это изучаю ,медленно. Но покопай с простого , элементы -И- и -ИЛИ-

потренеруйся на простом - на реле к примеру в симуляторе , потом мышление перейдет на программу ардуино.
Это на два месяца.Потом проще будет
1. Причем тут коды? И про какую кнопку речь? По аналогии со шпинделем: разве он маслает, пока оператор удерживает какую то кнопку?
2. Все эти "И" и "ИЛИ" должны глотать или контроллер или сендер. Насколько я понимаю, ни тот, ни другой этого не умеют. Да и это ничем не поможет. Это не mach, который совмещал в себе и контроллер, и сендер... Как (не в маче) задать обработку в цикле? Или в начале УП ввести переменные, а в теле обработки их использовать? Ну не умеют это сендеры (потому так и называются)...
3. Переходить на "ардуиномышление" мне как то незачем. Я полжизни сижу на stm32 (и, конечно, не в ардуино) и профессионально занимаюсь разработкой электроники... Зайдите на сайт автофона и посмотрите мои работы. От схемотехники, до софта (кроме сервера)...
Ну и итог: представьте, что у вас возникла задача в качестве шпинделя поставить шаговик со стандартным драйвером. Желательно с регулировкой скорости. Но чтоб этот шпиндель не вращался от начала смены и до четверга, а только тогда, когда это будет прпописано строчками g-кода. В принципе, стандартные команды управления шпинделем (M3 и M5 вроде) как раз это и делают. Ну или еще другими словами: вам нужна поворотная ось (конечно, на шаговике), вращение которой будет задаваться не в КАЖДОЙ строке кода, а, скажем, на 10-й строке начали вращение (и "забыли" про нее), потом 20 строк кода бегаете по другим осям (и чтоб в этих строках не было упоминания о поворотке), а потом, на 40-й строке остановили поворотку. Вот и все, что нужно решить.

Короче думаю коды надо учить
Учите. Только все программные трюки должен уметь переваривать сендер. И это уже не сендер будет, а "программный контроллер, передающий g-коды аппаратному контроллеру". Но если аппаратный контроллер умеет работать автономно (например, как указанный мной, читающий файл уп с sd-карты), то и он должен это уметь. Вот вам 2 строчки кода из мача:
#1=208.97
G90 X#1
сендер их просто пошлет контроллеру и тот, разумеется, ни черта не поймет
а мач принимает решение: G90 X208.97
или еще хлеще, обращение к подпрограмме, когда тот, кто ее читает должен вообще прыгать по коду уп вверх/вниз.
В общем, сейчас ставлю эти шаговики на оси A и B и просто в каждую строку кода добавлю их "перемещение" (с чего, собственно, и начал): G91 X10 Y20 A8 B5
И дело в шляпе. К тому же появляется отличная возможность корректировать объем заливки на каждом участке траектории, где потоньше, где пожирнее.
Другого разумного и грамотного решения не вижу.
 
1. Причем тут коды? И про какую кнопку речь? По аналогии со шпинделем: разве он маслает, пока оператор удерживает какую то кнопку?
2. Все эти "И" и "ИЛИ" должны глотать или контроллер или сендер. Насколько я понимаю, ни тот, ни другой этого не умеют.
Не обращайте особо внимание, палата №6 на Новогодних каникулах. :eek:
:D
 
Сверху Снизу
Обнаружен блокировщик рекламы AdBlock

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

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

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

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