Совместная разработка системы ЧПУ.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
А нельзя сразу при разборе получать обновлять измененные координаты + флаг изменения,далее сразу устанавливать тип действия g0,g1,g2,g3,g31,g33 ну и может еще каких нибудь команд движения,с тем чтобы сразу после разбора перейти к подпрограмме обработки команд движения(например g0(); ).Кроме того при поступлении различных команд типа g4,g90,91 и других меняющих установки работы чпу включая M коды выполнять их сразу в теле разбора(или вызывая соответствующие подпрограммы (например g4() еще до окончания разбора всей строки,
В таком случае разбор бы заканчивался либо вызовом подпрограммы расчета движения согласно типу действия и затем выходом из обработки строки,либо непосредственно выити уже сделав соответствующие установки системы.
В таком случае разбор бы заканчивался либо вызовом подпрограммы расчета движения согласно типу действия и затем выходом из обработки строки,либо непосредственно выити уже сделав соответствующие установки системы.
-
- Мастер
- Сообщения: 297
- Зарегистрирован: 14 апр 2015, 10:28
- Репутация: 38
- Настоящее имя: Антон
- Откуда: Томск
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Я больше всего работал с промышленными стойками, там, за исключением какого-нибудь совсем древнего Фанук 6м (у которого буфер на один кадр) предпросмотр (и сооьветственно, синтаксический разбор) на десятки кадров. например, у Heidenhain 426, если не ошибаюсь, предпросмотр 80кадров, и это очень важно, например, при ВСО, где опорожнился буфер и встала фреза- деталь на выброс. А стойке, на которой я работал черверть века стукнуло, и пашет до сих пор. А разрабатывали её, естественно, ещё раньше.
К чему я это всё - Вы, конечно, можете сразу заложиться на устаревшие подходы, но какой смысл? Сделать 101-й безнадёжный продукт?
Нужно как-то использовать достижения последних десятилетий.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Конечно, можно. Но получится монолитное решение. А в монолит отдельные доп. модули уже не внедрить. Я, к примеру, сейчас добавляю код разбора параметров внутри строки. И вижу, что разбор параметров это задача, которую можно сделать полностью отдельной функцией. И разбор комментариев надо сделать отдельной функцией, т.к. в комментариях могут быть команды, не связанные с G кодом. Всё это даст системе возможность выбора. А в монолитном подходе выбора нет, все параметры и комментарии будут разобраны в любом случае, надо это или не надо.
Если под фразой "устаревшие подходы" подразумевается использование С/С++ в критичных по времени задачах, я, пожалуй, буду придерживаться устаревших При этом я с удовольствием использую скриптовые языки и текстовую разметку для GUI.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Не понятно почему.Потом ,зачем внедрять доп модули,парсер всетаки достаточно стандартное решение.А простые расширения ввиде различных новых G и M кодов легко дописываются и вставляются а текст.У меня для расширения и обработки сложных циклов сделано так,что после просмотра всех возможных g кодов и при отсутствии кода в готовых идет поиск дополнительных кодов,которые выполнены в виде подпрограмм находящегося на флешке в файле functions.ini и при включении системы перегружаются с флешки в озу системы при этом для ускорения обработки расчитываются адреса начала каждой подпрограммы.Подпрограммы именуются номерами кодов (например подпрограмма с О500 будет вызываться кодом g500.Таким оьразом можно создавать G кода для сложной обработки например многопроходной резьбы или проточки .Точно также устроена обработка смены инструмента так как в подпрограмме можно написать условия по опросу портов и их установки.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Такой подход как раз и противоречит модульному подходу (из Unix Way). В итоге может получиться огромный комбайн в виде одной функции, которая делает всё - и играет, и пляшет, и поёт, и ещё немного вышивает крестиком.
Я понимаю, что не хочется переделывать готовый код под какой-то стандарт. Я этого ни от кого не требую, кроме самого себя. Желание "делать всё по-своему" есть у всех. Но это работает, когда круг участников не более одного-двух. А для массовой работы нужны стандарты.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Я с этим не спорю.Просто на выходе хотелось бы получить не перемолоченный код , а вызов определенной функции движения (g0,g1...)по окончании обработки строки и внутри обработки вызов установочных функций(g90,g91,g42,...) .Какой смысл перелопачивать код для получения его в более удобном для обработки виде,если все равно придется снова затратить время для его обработки и в итоге на выходе все равно получим вызов функции (g1,g2....)?Не оптимально,да и не вижу удобств для работы в команде.Чем первый вариант менее удобен?
Re: Совместная разработка системы ЧПУ.
Наверняка сочтете, что не в тему, но поднимать новую не стоит -
https://habr.com/ru/company/timeweb/blog/707410/
плата со 128 входами и выходами, опторазвязанными
https://habr.com/ru/company/timeweb/blog/707410/
плата со 128 входами и выходами, опторазвязанными
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
https://aliexpress.ru/item/1005004607691148.htmla321 писал(а): ↑ Наверняка сочтете, что не в тему, но поднимать новую не стоит -
https://habr.com/ru/company/timeweb/blog/707410/
плата со 128 входами и выходами, опторазвязанными
Налетай, торопись, покупай, не скупись
И при такой цене оно ещё не работает с быстрыми сигналами. Интернет вещей же
Так и будет, но этими вызовами заниматься должен не парсер G кода, а планировщик. А если мы используем парсер G кода для визуализации, то вызовами функций будет заниматься визуализатор. При этом они оба используют один и тот же модуль разбора G кода, но каждый - для своих задач. Вот здесь выигрыш и будет.
Выигрыш при совместной работе над разными модулями очевиден. Хорошая читабельность модульного кода. Повторное использование готовых модулей в разных местах проекта. Каждый может заниматься своими модулями, не влезая в чужой код.
Вот, к примеру, как сейчас выглядит разбор строки G кода, всё прозрачно и понятно. На выходе, после данного конвейера, мы получаем структуру, где есть все актуальные данные, включая найденные и измененные параметры. При этом, какие-то фильтры конвеера, по желанию, можно не использовать. Всё зависит от ситуации.
Код: Выделить всё
// setup buffers
from = str1; to = str2;
// parse and replace parameter values, #n and #<NAME>
parameters_cnt = gcode_parse_parameters(from, to, &gdata);
if ( parameters_cnt > 0 ) { from = str2; to = str1; }
// parse and remove comments, (...) and ;
comments_cnt = gcode_parse_comments(from, to, &gdata);
if ( comments_cnt > 0 ) { from = str1; to = str2; }
// parse, calculate and replace expressions, [any math]
expressions_cnt = gcode_parse_expressions(from, to, &gdata);
if ( expressions_cnt > 0 ) { from = str2; to = str1; }
// parse and remove parameters setup, #n=n and #<NAME>=n
parameters_setup_cnt = gcode_parse_parameters_setup(from, to, &gdata);
if ( parameters_setup_cnt > 0 ) { from = str1; to = str2; }
// parse words, Gn Mn Xn Yn ...
words_cnt = gcode_parse_words(from, &gdata);
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Я никогда не использовал планировщик,поэтому не очень представляю ,как он работает.А разве нельзя запускать планировщик при вызове функции (например G1)непосредственно внутри подпрограммы G1?
А разве визуализатор не использует те же функции,просто при движении не только делая шаги,но и ставя точки на экран?
(Код как то не очень понял)
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Визуализатор может быть на другом устройстве или полностью в другом процессе того же устройства. И ему какие-то функции при разборе кода будут не нужны, а какие-то наоборот, нужны. Например, комментарии вида (КОМАНДА, ЗНАЧЕНИЕ) планировщику не интересны, а визуализатор будет оттуда брать настройки отображения.
Планировщик у тебя есть в самой функции разбора текста G кода. А я хочу, чтобы все планы были отдельно от разбора текста. Каждому модулю - своя задача.
ЗЫ код был только для примера читабельности кода при модульном подходе
Планировщик у тебя есть в самой функции разбора текста G кода. А я хочу, чтобы все планы были отдельно от разбора текста. Каждому модулю - своя задача.
ЗЫ код был только для примера читабельности кода при модульном подходе
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
У меня рисовалка просто отображает текущую координату движения в трехмерном пространстве.Но это работает только наполный стол станка и без перерисовки т.к отображается прямо на экране и не имеет буфера в озу.Если надо быстро предварительно просмотреть программу,то программа выполняется полностью за изелючением того,что шаги делаются не по прерыванию таймера ,а подряд насколько позволяет скорость процессора.Ну и шагов на драйвера не поступает,только виртуальные.Но это пока иногда глючит.Пользуюсь редко.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
В данном случае, это он и есть. Просто, его функционал не так велик, как в других системах.
Что касается визуализатора.. для него, всё-таки, нужен процессор/видеочип помощней. Поэтому свой вариант интерфейса я делаю на более медленной настольной связке HTML/CSS/JS/WebGL. Но не исключаю, что будет ещё пара простых вариантов на С. Возможно, и на базе OpenGL ES, для ПК и мини ПК.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Пока вы думаете как надо, народ берет и делает ЧПУ, платы, привода
https://www.youtube.com/watch?v=e63kaxLendw
https://www.youtube.com/watch?v=e63kaxLendw
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Да мы, особо, и не думаем. У Сергея уже есть своё ЧПУ. Готовые закрытые ЧПУ есть и у других участников форума. У Михаила Юрова тоже скоро будет. А я делаю открытую систему, которая будет работать на любом утюге, но функционально будет не хуже LinuxCNC. Сканер G кода как раз оттуда. Скоро выложу новую версию, которая работает с параметрами, функциями и т.п.
Если кто-то хочет делать моторы и привода - милости просим. Жаль только, что исходники никто не выкладывает.
Если кто-то хочет делать моторы и привода - милости просим. Жаль только, что исходники никто не выкладывает.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Есть такая вероятность. Но работы еще много. Примерно половина.
Я не пытаюсь превзойти LinuxCNC или mach3 по функционалу, но стараюсь сделать программу более качественно.
Большинство функций сначала пишу, чтобы просто работали, а потом трачу в 20 раз больше времени, чтобы довести код до ума.
- MX_Master
- Мастер
- Сообщения: 7478
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3099
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
-
- Мастер
- Сообщения: 1247
- Зарегистрирован: 07 фев 2020, 21:00
- Репутация: 160
- Настоящее имя: Дмитрий
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Гражданином Непала может быть любой гражданин,зачатый НЕпалкой и НЕпальцем.
-
- Зачётный участник
- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6192
- Откуда: Казахстан.
- Контактная информация:
Re: Совместная разработка системы ЧПУ.
Платы, сервопривод который кушает многое из датчиков видел? Ты наверно не в курсе что делает DP Lab.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.