ЧПУ контроллер (STM32 + Ethernet + Web)
- frezeryga
- Почётный участник
- Сообщения: 13678
- Зарегистрирован: 18 авг 2013, 16:08
- Репутация: 5050
- Откуда: Жуковский
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
зачем мне запускать на разных ОС если сома прога будет написана под какуюто конекретную ОС. погоня за универсальностью к хорошему не приводит.
- selenur
- Почётный участник
- Сообщения: 4604
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1621
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Вот пример формул линейного движения: http://avrdoc.narod.ru/index/0-7HelicopterX писал(а):кстати а где то можно посмотреть как правильно рассчитывать G1,G2,G3 (то бишь формулы)
на linuxcnc https://github.com/LinuxCNC , что то с ходу не нашел
Мой сайт: 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
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Если текстовый файл УП сконвертировать в более понятный для процессора бинарный формат, то скорость чтения, передачи и выполнения такого файла увеличиться на порядок. Формат можно выбрать абсолютно любой. Главное, что процессор при этом уже не будет иметь дело с обычным текстом.Hanter писал(а):Михаил, а можно поинтересоваться - что значит "бинарный формат" ? просто интересно..
В качестве примера, можно каждый кадр УП представить в виде бинарной строки с чёткими приказами для импульсных генераторов. Можно в оптимизации пойти ещё дальше - разбить весь файл УП на бинарные отрезки команд длиной в сервопериод.
Веб интерфейс во время работы можно просто закрыть, а контроллер должен продолжать работу и дальше. Отсюда два варианта - план строится перед началом работы, или во время работы внутри STM32. Второй вариант - тяжелее, поэтому попробую найти золотую середину.Сергей Саныч писал(а):Функции планировщика движения куда предполагается поместить?
Ты же часто форумом пользуешься? А ютубом, а почтой? Они все универсальны и тебе это нравится.frezeryga писал(а):зачем мне запускать на разных ОС если сома прога будет написана под какуюто конекретную ОС. погоня за универсальностью к хорошему не приводит.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2857
- Откуда: Тюмень
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
"Это несерьёзно!"©MX_Master писал(а):В качестве примера, можно каждый кадр УП представить в виде бинарной строки с чёткими приказами для импульсных генераторов.
Разве что, как тренировочный вариант. я не просто так спросил про планировщик.
"А вот это попробуйте!" (тоже ©)MX_Master писал(а):разбить весь файл УП на бинарные отрезки команд длиной в сервопериод.
Чудес не бывает. Бывают фокусы.
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Ещё разок пробежался по тырнетам в поисках инструментов для показа траектории.
По-моему, выбор очевиден - https://threejs.org/ (WebGL).
Простые примеры - https://threejs.org/examples/.
Готовый пример просмотра и симуляции траектории G кода - https://ncviewer.com/.
По-моему, выбор очевиден - https://threejs.org/ (WebGL).
Простые примеры - https://threejs.org/examples/.
Готовый пример просмотра и симуляции траектории G кода - https://ncviewer.com/.
- Prav
- Мастер
- Сообщения: 827
- Зарегистрирован: 14 июл 2015, 05:10
- Репутация: 138
- Настоящее имя: Петр Раввинский
- Откуда: Москва
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Офигеть, круто!MX_Master писал(а):Ещё разок пробежался по тырнетам в поисках инструментов для показа траектории.
По-моему, выбор очевиден - https://threejs.org/ (WebGL).
Простые примеры - https://threejs.org/examples/.
Готовый пример просмотра и симуляции траектории G кода - https://ncviewer.com/.
- tooshka
- Почётный участник
- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
А как быть с планировщиком. Видирать тз ЛСНС? Это наверно первая проблема будет.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Буду делать свой. Перед запуском файла УП, планировщик будет составлять весь план полностью в виде бинарного файла. План будет представлять из себя отрезки длиной в сервопериод. Частоту сервопериода хочу сделать побольше, чем у LinuxCNC (1 КГц), к примеру, 10 КГц.tooshka писал(а):А как быть с планировщиком. Видирать тз ЛСНС? Это наверно первая проблема будет.
ЗЫ немного приболел, поэтому занимаюсь только лёгкими делами. Но надеюсь скоро приступить к реализации проекта.
-
- Кандидат
- Сообщения: 49
- Зарегистрирован: 25 май 2016, 13:55
- Репутация: 11
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
А при этом можно будет запускать с определенной строки кода? И ещё возможно ли будет исполнять программу в обратном порядке в любом месте , это нужно для электроэрозионного станка ?MX_Master писал(а): Буду делать свой. Перед запуском файла УП, планировщик будет составлять весь план полностью в виде бинарного файла. План будет представлять из себя отрезки длиной в сервопериод. Частоту сервопериода хочу сделать побольше, чем у LinuxCNC (1 КГц), к примеру, 10 КГц.
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
У каждого отрезка сервопериода будет метка с номером строки, поэтому запустить можно будет с любой строки. В обратном порядке тоже нет проблем, чтение и выполнение отрезков сервопериода может идти и наоборот.Quark писал(а):А при этом можно будет запускать с определенной строки кода? И ещё возможно ли будет исполнять программу в обратном порядке в любом месте , это нужно для электроэрозионного станка ?
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Продолжаем.
Плавно перешёл на микроконтроллер из серии STM32H7. Могучий камушек Большая производительность. Считает он в 2 раза быстрее, чем F4. И периферии в нём для ЧПУ чуть больше. Но просто так взять и перейти на H7 не выйдет. По-быстрому перенести проект из под F4/F7 на H7 нельзя! Да что там перенести. Даже в кубике создать рабочий Ethernet проект не так-то просто. Могучий камушек предполагает могучие настройки. И дополнительные часы чтения инструкций
Три дня и три ночи пытался завести на нём хотя бы тестовый конфиг веб сервера (LwIP + HTTPD) Единственный пример от самого производителя оказался невероятно глючным и нестабильным И куча тем на форумах ST тому подтверждение. В какой-то момент хотелось плюнуть и вернуться к более простому F4. Но не тут-то было. Четвёртый день инструкций и форумов оказался удачным Итого, скоро начнётся второй день непрерывной работы тестового веб-сервера на STM32H7. Ни один ICMP (ping) пакетик не был утерян. Тестовые HTML страницы открываются без проблем. Втык/вытык Ethernet кабеля на работу веб-сервера не влияет.
Следующий этап - веб-страница, которая в реальном времени будет показывать состояние всех пинов. Кроме того, на странице можно будет менять тип пинов (вход/выход) и их состояние. Такая страница будет очень полезна при подключении и проверке новых устройств. Будь-то концевик, энкодер, шаговый драйвер или платка релюх.
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Зимние каникулы продолжаются
Хотел было начать страницу с показом состояния пинов, но не удержался и сделал простую веб морду для обновления прошивок. Ну и функционал для прошивки внутри МК тоже добавил. Типа, как в сетевых роутерах. Чуть позже (на видео) покажу как это работает. Надо бы ещё добавить возможность менять основные настройки - MAC адрес, IP адрес и номера портов. Возможно, защиту паролем прикрутить. На название пока не смотрите, что-нибудь потом придумаем. Кстати, этот веб загрузчик будет использоваться и в проекте платы развязки для LinuxCNC.Но я, вощем-то, хотел сказать не об этом. Прошивки (новые и старые) я буду выкладывать, стессна, в интернетах (и на форуме). Однако, здравый смысл подсказывает, что по фэн-шую в голом виде их выкладывать нельзя Будет весьма печально, если вся работа будет на раз-два украдена и вставлена в китайский клон. Разработчики NCStudio, PlanetCNC, Smoothieboard (и другие) передают привет Если слить прошивку из МК будет нельзя, желательно подумать и о защите файлов в интернетах.
Пока что есть первая мысль - применить немного шифрования, типа AES (с ключом 128, 192 или 256 бит). По-моему будет достаточно. И размер файла прошивки остаётся (почти) тем же. Соответственно, при получении файла, МК его сам расшифрует, проверит и запишет во флэш. Очень удачно, что в STM32H75x для этого есть отдельный "железный" модуль (CRYP). И неудачно, что у STM32H74x (который я сейчас использую) его нет
ЗЫ ну и в качестве приятной новости для разработчиков - на github'e теперь есть бесплатные приватные репки (до 3-х человек)
-
- Новичок
- Сообщения: 26
- Зарегистрирован: 01 сен 2018, 20:31
- Репутация: 0
- Настоящее имя: Timur
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Грандиозный замысел. Лишь бы энтузиазма до конца хватило =)
esp32 какая-нибудь не покатит, для вэб морды, в пользу отказа от провода?
Хотя аппаратная поддержка езернета контроллером... Я такое видел только в кино
esp32 какая-нибудь не покатит, для вэб морды, в пользу отказа от провода?
Хотя аппаратная поддержка езернета контроллером... Я такое видел только в кино
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Ethernet кабель - самое надёжное решение. Но если кому-то вдруг понадобится, можно взять любой недорогой Wi-Fi роутер.Timur_Akhmatov писал(а):esp32 какая-нибудь не покатит, для вэб морды, в пользу отказа от провода?
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Всё-таки, сделать безопасный веб загрузчик для прошивок очень даже непросто. И ща расскажу почему. Может, сей финт ушами кому-то пригодится.
В качестве МК я использую STM32H750VBT6. У него, в целях экономии денег, всего 128 Кб флэша. Причём, все 128 на одной странице памяти. Это значит, что при заливке новой прошивки, вся эта страница из 128 Кб будет предварительно очищена, и поверх зальётся новая прошивка.
Всё довольно просто, но есть тут небольшой парадокс. Получается, что текущая прошивка с нашим веб-загрузчиком должна прямо во время работы стереть сама себя залить на это место новую прошивку и перезапустить чип. А ведь такого не может быть! Или может? К счастью подобный парадокс решается. Для этого надо создать функцию "очистки, записи и сброса". Заранее положить её в оперативную память. И в назначенный час просто запустить эту функцию оттуда. И тогда проблем не будет.
Вслед за этим появилась новая задача. В целях защиты от потусторонних глаз, прошивка у нас зашифрована, а в МК выставлен уровень защиты №1. При этом вычитать с помощью "программатора" прошивку из флэшки МК нельзя. Зато можно прочесть всё, что есть в оперативке Почему это проблема? Всё дело в том, наш веб загрузчик заливает зашифрованную прошивку прямо в оперативку. Благо объём в 1024 Кб позволяет. А вот дальше прошивку надо расшифровать. Но куда? Если расшифровать в оперативку, результат можно смело забрать "программатором" при отладке. Вдобавок можно забрать ещё и ключ. Непорядок!
Что же делать? Надо как-то спрятать и не показывать ключ, а затем расшифровать им прошивку, не показывая результат в оперативке. Во, засада. К счастью, мне на глаза попалась карта памяти чипа, где был указан дополнительный кусочек оперативки под именем "backup SRAM". Всего 4 Кб, зато каких! При уровне защиты №1, этот кусочек в 4 Кб не виден при отладке извне. Ну, просто подарок судьбы! Можно там и ключ положить, и буфер расшифровки сделать.
В качестве МК я использую STM32H750VBT6. У него, в целях экономии денег, всего 128 Кб флэша. Причём, все 128 на одной странице памяти. Это значит, что при заливке новой прошивки, вся эта страница из 128 Кб будет предварительно очищена, и поверх зальётся новая прошивка.
Всё довольно просто, но есть тут небольшой парадокс. Получается, что текущая прошивка с нашим веб-загрузчиком должна прямо во время работы стереть сама себя залить на это место новую прошивку и перезапустить чип. А ведь такого не может быть! Или может? К счастью подобный парадокс решается. Для этого надо создать функцию "очистки, записи и сброса". Заранее положить её в оперативную память. И в назначенный час просто запустить эту функцию оттуда. И тогда проблем не будет.
Вслед за этим появилась новая задача. В целях защиты от потусторонних глаз, прошивка у нас зашифрована, а в МК выставлен уровень защиты №1. При этом вычитать с помощью "программатора" прошивку из флэшки МК нельзя. Зато можно прочесть всё, что есть в оперативке Почему это проблема? Всё дело в том, наш веб загрузчик заливает зашифрованную прошивку прямо в оперативку. Благо объём в 1024 Кб позволяет. А вот дальше прошивку надо расшифровать. Но куда? Если расшифровать в оперативку, результат можно смело забрать "программатором" при отладке. Вдобавок можно забрать ещё и ключ. Непорядок!
Что же делать? Надо как-то спрятать и не показывать ключ, а затем расшифровать им прошивку, не показывая результат в оперативке. Во, засада. К счастью, мне на глаза попалась карта памяти чипа, где был указан дополнительный кусочек оперативки под именем "backup SRAM". Всего 4 Кб, зато каких! При уровне защиты №1, этот кусочек в 4 Кб не виден при отладке извне. Ну, просто подарок судьбы! Можно там и ключ положить, и буфер расшифровки сделать.
ЗЫ: уровень защиты №2 слишком суровый. Заблокировать отладку (запись и чтение) чипа навсегда - однозначно хардкор. У меня нет уверенности в том, что прошивка с веб загрузчиком сразу получится без косяков.
- Mamont
- Мастер
- Сообщения: 1953
- Зарегистрирован: 10 дек 2015, 12:21
- Репутация: 382
- Настоящее имя: Виталий
- Откуда: РБ Минск
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Отладчик при защите n1 видит регистры контроллера? Если нет, то ключ может находиться в регистрах.
Расшифровку делать по байтно, и запихивать его сразу во флеш, без сохранения в озу.
Расшифровку делать по байтно, и запихивать его сразу во флеш, без сохранения в озу.
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
А где будет лежать этот расшифрованный байт перед заливкой во флэш? В открытой оперативке? (:
- Mamont
- Мастер
- Сообщения: 1953
- Зарегистрирован: 10 дек 2015, 12:21
- Репутация: 382
- Настоящее имя: Виталий
- Откуда: РБ Минск
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
в регистре
(опять таки,не знаю особенностей этих контроллеров, если регистры доступны при отладке, то нет смысла)
тем более если есть решение с "backup SRAM"
(опять таки,не знаю особенностей этих контроллеров, если регистры доступны при отладке, то нет смысла)
тем более если есть решение с "backup SRAM"
- MX_Master
- Мастер
- Сообщения: 7465
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3088
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Там рядом с этим запасным кусочком ОЗУ, есть регистры RTC (80 байт). Они не видны. Про другие - не читал.
За побайтовый способ с хранением в регистрах - спасибо
За побайтовый способ с хранением в регистрах - спасибо
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5181
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: ЧПУ контроллер (STM32 + Ethernet + Web)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...