PathMaster — разработка ЧПУ системы
- MX_Master
- Мастер
- Сообщения: 7474
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3098
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Самая кроссплатформенная фигня в плане графики и гуя - html/js/css. Примеры софта - Fusion 360, Onshape, небольшие примеры - https://webglsamples.org/, https://threejs.org/.
Самая кроссплатформенная фигня в плане скорости вычислений - обычный С и целочисленная логика.
Самая кроссплатформенная фигня в плане скорости вычислений - обычный С и целочисленная логика.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Не смогу. Во всяком случае на данном этапе.
Я еще программировать то правильно не научился. А совместная работа для меня совсем сложно. Да и денег нет, только долги.
Спасибо!
У меня пока свои идеи на эту тему. Не уверен, правда, получится ли...
Многие системы рассчитывают траекторию на уровне геометрии, достраивают дуги на стыках линейных сегментов, и рассчитывают допустимые скорости и ускорения для каждой точки траектории. Это не сложно для двухмерных траекторий. Решаемо для трехмерных. Но приводит к проблемам на многоосевых станках.
Я же хочу исключить часть условий из системы уравнений, что приведет к множеству вариантов решения. И выбирать оптимальный, балансируя между допустимым отклонением, временем прохождения и количеством предварительно рассчитанных вариантов.
Грубо говоря, пытаюсь сделать более быструю и точную систему ЧПУ. На многоосевую обработку пока на замахиваюсь. Но хочу оставить возможность для реализации в дальнейшем.
Прошу извинить, что отказываюсь от помощи... В процессе работы у меня наверняка появятся вопросы, и я их напишу, если смогу сформулировать )))
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Да, на нем и пишу.
Мне бы дожить до этого недалекого будущего для начала... Возможные проблемы с Виндоусом сейчас совсем не беспокоят.
Я ведь рассматривал множество разных вариантов. Даже пытался сам дописать необходимый функционал, для кроссплатформенной работы. Но руки опустились. Linux в плане графического интерфейса слишком сильно отстал, и придется половину графической системы самому писать. На такое я не готов.
Либо, сделать как у всех. Тогда непонятно, зачем вообще делать.
Это правильный подход, но вносит ряд ограничений. Мне это не нравится.
Для примера - посмотри, как быстро мир перешел на аккумуляторные / беспроводные устройства. Хотя, казалось бы, проводные и дешевле и надежнее, и воткнуть провод совсем не проблема. Хотя, с другой стороны, у электроинструмента аккумулятор сделан как отдельный универсальный модуль.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
В наше время скорость больше зависит от реализации многопоточных вычислений. И от наличия Java.
Я наверное, зря путаю Java и JavaScript. М.б. с JavaScript все хорошо.
- MX_Master
- Мастер
- Сообщения: 7474
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3098
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Я, кстати, про деньги ничего не имел ввиду, когда говорил про кооперацию. Чисто доброволие. Что касается совместной работы.. многие аспекты большого проекта можно проработать лучше, когда есть чужой глаз и, соответственно, чужой ум с другим багажом опыта. Добавим сюда ещё и скорость работы при распределении задач.
И немного поясню, что я имел ввиду про JS/HTML/CSS.. JavaScript нужен в интерфейсе только как средство управления элементами этого интерфейса. Со всеми его недостатками и достоинствами, он создавался совсем для других задач и, что-то там считать на этом языке не надо. Пытаются сейчас пропихнуть в массы WebAssembly для вычислений. Но на мой взгляд, всё это слишком игрушечное, и в прямом, и в переносном смысле. Сама же связка JavaScript/HTML/CSS ценна именно как универсальный GUI движок. Неважно какая у пользователя система или устройство, весь интерфейс будет работать как было задумано и нарисовано автором. Если элементы управления браузера пользователю не должны быть видны, всё это можно отключить вплоть до показа голого окна с рамками и без рамок (на весь экран). Вычислениями и другими задачами GUI заниматься, стессна, не должен. Для этих вещей у GUI есть простейшее API для связи с внешним миром - websocket'ы. Весь вычислительный (желательно, нативный) и не графический софт должен работать на другом конце веб-сокета, передавая команды и данные в GUI и обратно. На каком языке и какими инструментами будет реализован вычислительный софт, это уже другой вопрос. На мой взгляд, на голом языке С можно прекрасно делать все вычисления. Весь этот абстрактный вычислительный код прекрасно портируется на любые платформы благодаря компиляторам (в том числе и на микроконтроллеры). Единственная неабстрактная вещь, которую придётся накатать для каждой платформы - это модули связи между компонентами.
Какие плюсы мы имеем при таком подходе?
И немного поясню, что я имел ввиду про JS/HTML/CSS.. JavaScript нужен в интерфейсе только как средство управления элементами этого интерфейса. Со всеми его недостатками и достоинствами, он создавался совсем для других задач и, что-то там считать на этом языке не надо. Пытаются сейчас пропихнуть в массы WebAssembly для вычислений. Но на мой взгляд, всё это слишком игрушечное, и в прямом, и в переносном смысле. Сама же связка JavaScript/HTML/CSS ценна именно как универсальный GUI движок. Неважно какая у пользователя система или устройство, весь интерфейс будет работать как было задумано и нарисовано автором. Если элементы управления браузера пользователю не должны быть видны, всё это можно отключить вплоть до показа голого окна с рамками и без рамок (на весь экран). Вычислениями и другими задачами GUI заниматься, стессна, не должен. Для этих вещей у GUI есть простейшее API для связи с внешним миром - websocket'ы. Весь вычислительный (желательно, нативный) и не графический софт должен работать на другом конце веб-сокета, передавая команды и данные в GUI и обратно. На каком языке и какими инструментами будет реализован вычислительный софт, это уже другой вопрос. На мой взгляд, на голом языке С можно прекрасно делать все вычисления. Весь этот абстрактный вычислительный код прекрасно портируется на любые платформы благодаря компиляторам (в том числе и на микроконтроллеры). Единственная неабстрактная вещь, которую придётся накатать для каждой платформы - это модули связи между компонентами.
Какие плюсы мы имеем при таком подходе?
- Не надо перетряхивать GUI под каждую платформу. Код GUI остаётся неизменным.
- Внешний вид GUI пользователь может менять под себя, без изменений в вычислительном коде.
- Не надо сильно перетряхивать вычислительный код, при переходе на другие платформы. По факту все вычисления могут крутится одинаково хорошо и внутри микроконтроллера, и в качестве консольной программы на ПК под любой ОС.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Я как раз не озадачивался сложными расчетами.Алгоритмы позволяют легко увеличивать число осей вплоть до бесконечности.При этом сложность системы практически не увеличивается.То есть просто замедляется пропорционально числу осей.Никаких предпросмотров и предрасчетов ускорений.Существует как бы параллельно два алгоритма.Первый рассчитывает движение при бесконечных усорениях.Другой,как бы имитируя привод параллельно рассчитывает по ним уже траектории с ускорениями.Все это происходит внутри прерывания SysTic.Причем есть алгоритм расчета экспоненциального ускорения и линейного.Линейное конечно лучше,но требует не маленького объема памяти(около (20кб на ось)юПри этом сами расчеты достаточно простые.Экспоненциальный же аналогичен приводному,и простой как пять копеек ,и не жрет память.Все расчеты в целых числах.Круговое движение расчитывается из большого числа прямых хорд.Алгоритмы непосредственного расчета дуг конечно достаточно простые,но не позволяют расчитать движение с постоянной скоростью.michael-yurov писал(а): ↑ Это не сложно для двухмерных траекторий. Решаемо для трехмерных. Но приводит к проблемам на многоосевых станках.
-
- Мастер
- Сообщения: 6135
- Зарегистрирован: 19 дек 2012, 15:49
- Репутация: 884
- Откуда: Москва
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Да не обязательно совсем java для скорости нужен.michael-yurov писал(а): ↑18 окт 2022, 14:51В наше время скорость больше зависит от реализации многопоточных вычислений. И от наличия Java.
Многопоточность - это для мажоров. Камни начального уровня по 4 ядра имеют всего.
И не все задачи могут быть исполнены параллельно.
Профилировать надо. Обычно раз в 10 быстрее можно сделать за несколько дней...
Если до тебя никто ни о чём не думал.
Если у вас прям "вычислительные задачи", то надо в сторону графических ускорителей смотреть...
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Я скорее говорил наоборот, что программы на моем компьютере, использующие Джаву, заметно подтупливают, и это создает неприятное ощущение какой-то липкости, нестабильности работы.
А и не надо пытаться разделить все задачи на равные части, для сокращения времени их обработки.
Например, при открытии файла - совсем не обязательно ждать завершения его чтения, чтобы можно было начать использовать и просматривать УП, и не нужно ждать полного отображения траектории для использования станка.
-
- Мастер
- Сообщения: 6135
- Зарегистрирован: 19 дек 2012, 15:49
- Репутация: 884
- Откуда: Москва
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Уже много лет как нет большой разницы в производительности. Т.е. нюансы влияют гораздо больше.michael-yurov писал(а): ↑19 окт 2022, 15:04Я скорее говорил наоборот, что программы на моем компьютере, использующие Джаву, заметно подтупливают, и это создает неприятное ощущение какой-то липкости, нестабильности работы.
Чисто идеологически нет причин, по которым java должна работать медленнее С. (исключая момент запуска)
А дальше начинаются тонкости связанные с средой, ее настройкой, компилятором, его настройкой,
всяческими конструкциями и их использованием итд итп.
Есть бездна возможностей "просрать все полимеры" даже если у вас весьма "быстрый" язык.
И ими как правило все пользуются... возможностями просрать
Так это не многопоточность у вас, а асинхронность.michael-yurov писал(а): ↑19 окт 2022, 15:04А и не надо пытаться разделить все задачи на равные части, для сокращения времени их обработки.
Например, при открытии файла - совсем не обязательно ждать завершения его чтения, чтобы можно было начать использовать и просматривать УП, и не нужно ждать полного отображения траектории для использования станка.
И ее лучше бы... не допускать... при любой.... возможности.
Ну т.е. это потребительски иногда(!) отличная вещь.
Но может вести к такого рода НЕОЧЕВИДНЫМ проблемам, что лучше бы обойтись без нее везде, где можно.
Т.е. яб предпочел софт, который мгновенно сжует и 100гб G-кодов используя графический ускоритель, чем тот,
который будет что-то крутить в фоне во время работы на ЦПУ, и потенциально что-то потом "выдаст".
При этом возникает очень много вопросов про этот "потом". Оно найдет ошибки в коде ?
Уже после того как я его запустил и ушел ? Вот спасибо....
Я, если честно, не верю, что требуется прям что-то такое, что упираетесь в производительность.
Надо скорее не асинхронность внедрять, а узкие места находить. В первую очередь.
А уж потом, если все остальное уже исчерпано, то "вот это вот всё с фоновой загрузкой итп".
- MX_Master
- Мастер
- Сообщения: 7474
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3098
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Друзья, по-моему, надо перейти от слов к делу. Давайте совместно хотя б пару алгоритмов накатаем.
На мой взгляд, между G кодом и непосредственно планировщиком должен быть ещё один промежуточный модуль. Который из текста (G код) конвертирует данные в универсальный бинарный формат, удобный для дальнейшей работы и вычислений. Можно начать с этого. Интерфейсом пользователя можно заняться позже.
На мой взгляд, между G кодом и непосредственно планировщиком должен быть ещё один промежуточный модуль. Который из текста (G код) конвертирует данные в универсальный бинарный формат, удобный для дальнейшей работы и вычислений. Можно начать с этого. Интерфейсом пользователя можно заняться позже.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Может в начале продумать архитектуру в целом, а потом уже что-то писать, а то можно сейчас чего нибудь написать, а потом окажется что в общую концепцию не попадает.MX_Master писал(а): ↑20 окт 2022, 09:39 Друзья, по-моему, надо перейти от слов к делу. Давайте совместно хотя б пару алгоритмов накатаем.
На мой взгляд, между G кодом и непосредственно планировщиком должен быть ещё один промежуточный модуль. Который из текста (G код) конвертирует данные в универсальный бинарный формат, удобный для дальнейшей работы и вычислений. Можно начать с этого. Интерфейсом пользователя можно заняться позже.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- MX_Master
- Мастер
- Сообщения: 7474
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3098
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Не знаю как думает Михаил, но я за модульность по канонам Unix. Один модуль (отдельная программа) должен хорошо делать только одну задачу. Общение между модулями - максимально простыми сообщениями (stdin/stdout). Для удалённого общения - доп. модули (USB, Ethernet, SPI, UART, ..) под каждую платформу по необходимости. По факту надо продумать минимальный список модулей.
- Prav
- Мастер
- Сообщения: 827
- Зарегистрирован: 14 июл 2015, 05:10
- Репутация: 138
- Настоящее имя: Петр Раввинский
- Откуда: Москва
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Короче говоря, если вы, товарищи, реалисты, то с нуля до более-менее чего-то работоспособного, что можно продать, необходимо пару лет, не меньше. За это время в российской экономике может всё перевернуться с ног на голову. Стоит ли того оно?selenur писал(а): ↑20 окт 2022, 11:14Может в начале продумать архитектуру в целом, а потом уже что-то писать, а то можно сейчас чего нибудь написать, а потом окажется что в общую концепцию не попадает.MX_Master писал(а): ↑20 окт 2022, 09:39 Друзья, по-моему, надо перейти от слов к делу. Давайте совместно хотя б пару алгоритмов накатаем.
На мой взгляд, между G кодом и непосредственно планировщиком должен быть ещё один промежуточный модуль. Который из текста (G код) конвертирует данные в универсальный бинарный формат, удобный для дальнейшей работы и вычислений. Можно начать с этого. Интерфейсом пользователя можно заняться позже.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Меня раздражает даже долгий запуск.
У многих Джава приложений еще замечаю переодические подвисания в случайных местах.
Виноват. Да, хотел сказать про асинхронность.
Да, я понимаю. И представляю, при каком стечении событий могут быть проблемы.
Согласен.
Но реальность такова, что потенциальные пользователи будут использовать максимально дешевые компьютеры с самыми маленькими экранчиками, минимум оперативки и древним HDD, или, еще лучше, диском на SD-карте. А если смогут, постараются запихнуть все это в Raspberry Pi, или старенький планшет. Ведь там есть сенсорный экран и можно работать через домашний Wi-Fi.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Найдет сразу как закончит просмотр файла. Сейчас на приличном ПК файл в 450 МБ просматривается за 12 с. Полагаю, в работоспособной версии программы это будет происходить в 2-3 раза дольше. М.б. не стоит разрешать запуск до полного просмотра файла.
А что может стать проблемой?
Выход за рабочее поле. Нераспознанная команда. Отсутствующий инструмент. Наличие команды, которую нельзя выполнить (например, включить СОЖ, а в настройках не задан выход сигнала для СОЖ).
Очень не люблю я такой подход — сделать, чтобы хоть что-то работало, а потом из этого делать хороший продукт.
Чудес не бывает. Хотя... У меня сосед недавно фундамент заменил после того как дом построил.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
И куда он потом денет, что насчитал? В оперативку?
Я то примерно представляю то что я собираюсь сделать.
А меня здесь все склоняют, чтобы я сделал как у большинства других ЧПУ систем. И я не понимаю, чем вам существующие то тогда не угодили?
У меня вот как раз с интерфейсом главные пробелы в концепции. Я не представляю, как решить многие задачи. А вся математика мне кажется так или иначе решаемой.
- MX_Master
- Мастер
- Сообщения: 7474
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3098
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Никто никого и никуда не склоняет. Те, у кого есть соответствующий опыт, подсказывают как не надо делать, чтобы избежать проблем в будущем.
К примеру, взять строгую привязку к Windows. Это ж потенциальная бомба, особенно, для пользователей из России. Неужели это так незаметно в нынешних условиях? Хобячников мы не имеем ввиду, эти могут ставить пиратку системы и наслаждаться жизнью дальше. А вот официальные компании, компы которых всегда проверяют, купить Windows не могут. А в дальнейшем будет запрещено ставить данный софт на российское оборудование.
Модульность хорошо себя зарекомендовала. Найти ошибку в коде отдельного модуля легче, чем прочёсывать код всего проекта. А если всё свалить в один бинарник, малейшая ошибка может привести к отказу всей системы. А так быть не должно. К примеру, фатальные ошибки в коде GUI не должны влиять на работу планировщика, контроллера и прочих модулей. GUI должен быть перезагружен без потерь и остановок в работе.
ЗЫ какие могут быть проблемы с интерфейсом пользователя?
К примеру, взять строгую привязку к Windows. Это ж потенциальная бомба, особенно, для пользователей из России. Неужели это так незаметно в нынешних условиях? Хобячников мы не имеем ввиду, эти могут ставить пиратку системы и наслаждаться жизнью дальше. А вот официальные компании, компы которых всегда проверяют, купить Windows не могут. А в дальнейшем будет запрещено ставить данный софт на российское оборудование.
Модульность хорошо себя зарекомендовала. Найти ошибку в коде отдельного модуля легче, чем прочёсывать код всего проекта. А если всё свалить в один бинарник, малейшая ошибка может привести к отказу всей системы. А так быть не должно. К примеру, фатальные ошибки в коде GUI не должны влиять на работу планировщика, контроллера и прочих модулей. GUI должен быть перезагружен без потерь и остановок в работе.
ЗЫ какие могут быть проблемы с интерфейсом пользователя?
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Ты серьезно думаешь, что я могу сделать универсальную ЧПУ систему, которую и хобячники будут с радостью использовать и на предприятиях будут ставить?
Это уже неработоспособная система, если такое может происходить.
Есть разные сценарии использования, и для них нужен разный интерфейс. Например, работа с центроискателем, или с таблицей смены инструмента. Как это удобно реализовать — я не знаю.
Не сомневаюсь, что большинство программистов сделали бы это просто в отдельном окне, но это плохое решение.
Либо, сделать разные интерфейсы, и переключение, как на промышленных системах, но и с этим есть ряд серьезных проблем.
- MX_Master
- Мастер
- Сообщения: 7474
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3098
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Михаил, для хобячников уже полно всяких хобяческих систем. Ещё одну в список добавлять смысл, канеш, есть, но небольшой. Надо делать с прицелом на средний и крупный бизнес, ну и на гос. заказ тоже пристреливаться.
Посмотрите как работает Linux. Даже, если один из компонентов вышел из строя, система продолжает работать. А в пром. оборудовании важна как раз надёжность и стабильность. Если работа системы продолжается и заготовка не отправилась в мусор, то перезагрузка интерфейса во время работы не будет иметь значения для владельца. Ничего страшного нет, кроме эстетического неудовлетворения, при выключении и включении визуализатора заново при его ошибках.
Центроискатели и прочие подмодули GUI - во вкладках.
Посмотрите как работает Linux. Даже, если один из компонентов вышел из строя, система продолжает работать. А в пром. оборудовании важна как раз надёжность и стабильность. Если работа системы продолжается и заготовка не отправилась в мусор, то перезагрузка интерфейса во время работы не будет иметь значения для владельца. Ничего страшного нет, кроме эстетического неудовлетворения, при выключении и включении визуализатора заново при его ошибках.
Центроискатели и прочие подмодули GUI - во вкладках.
-
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: PathMaster — разработка ЧПУ системы
Мне кажется ,графический интерфейс пользователя- второстепенное.Главное движение.GBRL не имеет никакого графического интерфейса,но уже широко используется.Готовый графический интерфейс же ,без наличия движения использовать невозможно.Поэтому ,наверное,надо вначале сделать движение,а ,затем уже расширять интерфейс пользователя,и дорабатывать и развивать все остальное.В этом случае,при открытом исходном коде к проекту может подключиться значительное число энтузиастов,и появится возможность расширять прект в различных направлениях и для различных платформ.