ЧПУ контроллер (STM32 + Ethernet + Web)

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
frezeryga
Почётный участник
Почётный участник
Сообщения: 13678
Зарегистрирован: 18 авг 2013, 16:08
Репутация: 5050
Откуда: Жуковский
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение frezeryga »

зачем мне запускать на разных ОС если сома прога будет написана под какуюто конекретную ОС. погоня за универсальностью к хорошему не приводит.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4604
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1621
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение selenur »

HelicopterX писал(а):кстати а где то можно посмотреть как правильно рассчитывать G1,G2,G3 (то бишь формулы)
на linuxcnc https://github.com/LinuxCNC , что то с ходу не нашел
Вот пример формул линейного движения: http://avrdoc.narod.ru/index/0-7
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

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)

Сообщение MX_Master »

Ещё разок пробежался по тырнетам в поисках инструментов для показа траектории.
По-моему, выбор очевиден - https://threejs.org/ (WebGL).

Простые примеры - https://threejs.org/examples/.
Готовый пример просмотра и симуляции траектории G кода - https://ncviewer.com/.
Аватара пользователя
Prav
Мастер
Сообщения: 827
Зарегистрирован: 14 июл 2015, 05:10
Репутация: 138
Настоящее имя: Петр Раввинский
Откуда: Москва
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение Prav »

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)

Сообщение tooshka »

А как быть с планировщиком. Видирать тз ЛСНС? Это наверно первая проблема будет.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

tooshka писал(а):А как быть с планировщиком. Видирать тз ЛСНС? Это наверно первая проблема будет.
Буду делать свой. Перед запуском файла УП, планировщик будет составлять весь план полностью в виде бинарного файла. План будет представлять из себя отрезки длиной в сервопериод. Частоту сервопериода хочу сделать побольше, чем у LinuxCNC (1 КГц), к примеру, 10 КГц.

ЗЫ немного приболел, поэтому занимаюсь только лёгкими делами. Но надеюсь скоро приступить к реализации проекта.
Quark
Кандидат
Сообщения: 49
Зарегистрирован: 25 май 2016, 13:55
Репутация: 11
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение Quark »

MX_Master писал(а): Буду делать свой. Перед запуском файла УП, планировщик будет составлять весь план полностью в виде бинарного файла. План будет представлять из себя отрезки длиной в сервопериод. Частоту сервопериода хочу сделать побольше, чем у LinuxCNC (1 КГц), к примеру, 10 КГц.
А при этом можно будет запускать с определенной строки кода? И ещё возможно ли будет исполнять программу в обратном порядке в любом месте , это нужно для электроэрозионного станка ?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

Quark писал(а):А при этом можно будет запускать с определенной строки кода? И ещё возможно ли будет исполнять программу в обратном порядке в любом месте , это нужно для электроэрозионного станка ?
У каждого отрезка сервопериода будет метка с номером строки, поэтому запустить можно будет с любой строки. В обратном порядке тоже нет проблем, чтение и выполнение отрезков сервопериода может идти и наоборот.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

IMG_20181226_162111.jpg (3096 просмотров) <a class='original' href='./download/file.php?id=153662&sid=3835921f7dc312dc504ba2b5947705a6&mode=view' target=_blank>Загрузить оригинал (558 КБ)</a>
Продолжаем.

Плавно перешёл на микроконтроллер из серии STM32H7. Могучий камушек :thumbup: Большая производительность. Считает он в 2 раза быстрее, чем F4. И периферии в нём для ЧПУ чуть больше. Но просто так взять и перейти на H7 не выйдет. По-быстрому перенести проект из под F4/F7 на H7 нельзя! Да что там перенести. Даже в кубике создать рабочий Ethernet проект не так-то просто. Могучий камушек предполагает могучие настройки. И дополнительные часы чтения инструкций :hehehe:

Три дня и три ночи пытался завести на нём хотя бы тестовый конфиг веб сервера (LwIP + HTTPD) :pssdoff: Единственный пример от самого производителя оказался невероятно глючным и нестабильным :tongue: И куча тем на форумах ST тому подтверждение. В какой-то момент хотелось плюнуть и вернуться к более простому F4. Но не тут-то было. Четвёртый день инструкций и форумов оказался удачным :beer_blow: Итого, скоро начнётся второй день непрерывной работы тестового веб-сервера на STM32H7. Ни один ICMP (ping) пакетик не был утерян. Тестовые HTML страницы открываются без проблем. Втык/вытык Ethernet кабеля на работу веб-сервера не влияет.

Следующий этап - веб-страница, которая в реальном времени будет показывать состояние всех пинов. Кроме того, на странице можно будет менять тип пинов (вход/выход) и их состояние. Такая страница будет очень полезна при подключении и проверке новых устройств. Будь-то концевик, энкодер, шаговый драйвер или платка релюх.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

Зимние каникулы продолжаются :hehehe:
Хотел было начать страницу с показом состояния пинов, но не удержался и сделал простую веб морду для обновления прошивок. Ну и функционал для прошивки внутри МК тоже добавил. Типа, как в сетевых роутерах. Чуть позже (на видео) покажу как это работает. Надо бы ещё добавить возможность менять основные настройки - MAC адрес, IP адрес и номера портов. Возможно, защиту паролем прикрутить. На название пока не смотрите, что-нибудь потом придумаем. Кстати, этот веб загрузчик будет использоваться и в проекте платы развязки для LinuxCNC.
2019-01-08_184053.jpg (2984 просмотра) <a class='original' href='./download/file.php?id=153963&sid=3835921f7dc312dc504ba2b5947705a6&mode=view' target=_blank>Загрузить оригинал (40.8 КБ)</a>
Но я, вощем-то, хотел сказать не об этом. Прошивки (новые и старые) я буду выкладывать, стессна, в интернетах (и на форуме). Однако, здравый смысл подсказывает, что по фэн-шую в голом виде их выкладывать нельзя :) Будет весьма печально, если вся работа будет на раз-два украдена и вставлена в китайский клон. Разработчики NCStudio, PlanetCNC, Smoothieboard (и другие) передают привет wave Если слить прошивку из МК будет нельзя, желательно подумать и о защите файлов в интернетах.

Пока что есть первая мысль - применить немного шифрования, типа AES (с ключом 128, 192 или 256 бит). По-моему будет достаточно. И размер файла прошивки остаётся (почти) тем же. Соответственно, при получении файла, МК его сам расшифрует, проверит и запишет во флэш. Очень удачно, что в STM32H75x для этого есть отдельный "железный" модуль (CRYP). И неудачно, что у STM32H74x (который я сейчас использую) его нет :)
ЗЫ ну и в качестве приятной новости для разработчиков - на github'e теперь есть бесплатные приватные репки (до 3-х человек)
Timur_Akhmatov
Новичок
Сообщения: 26
Зарегистрирован: 01 сен 2018, 20:31
Репутация: 0
Настоящее имя: Timur
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение Timur_Akhmatov »

Грандиозный замысел. Лишь бы энтузиазма до конца хватило =)
esp32 какая-нибудь не покатит, для вэб морды, в пользу отказа от провода?
Хотя аппаратная поддержка езернета контроллером... Я такое видел только в кино :)
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

Timur_Akhmatov писал(а):esp32 какая-нибудь не покатит, для вэб морды, в пользу отказа от провода?
Ethernet кабель - самое надёжное решение. Но если кому-то вдруг понадобится, можно взять любой недорогой Wi-Fi роутер.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

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

В качестве МК я использую STM32H750VBT6. У него, в целях экономии денег, всего 128 Кб флэша. Причём, все 128 на одной странице памяти. Это значит, что при заливке новой прошивки, вся эта страница из 128 Кб будет предварительно очищена, и поверх зальётся новая прошивка.

Всё довольно просто, но есть тут небольшой парадокс. Получается, что текущая прошивка с нашим веб-загрузчиком должна прямо во время работы стереть сама себя :think: залить на это место новую прошивку и перезапустить чип. А ведь такого не может быть! :lol1: Или может? К счастью подобный парадокс решается. Для этого надо создать функцию "очистки, записи и сброса". Заранее положить её в оперативную память. И в назначенный час просто запустить эту функцию оттуда. И тогда проблем не будет.

Вслед за этим появилась новая задача. В целях защиты от потусторонних глаз, прошивка у нас зашифрована, а в МК выставлен уровень защиты №1. При этом вычитать с помощью "программатора" прошивку из флэшки МК нельзя. Зато можно прочесть всё, что есть в оперативке :) Почему это проблема? Всё дело в том, наш веб загрузчик заливает зашифрованную прошивку прямо в оперативку. Благо объём в 1024 Кб позволяет. А вот дальше прошивку надо расшифровать. Но куда? Если расшифровать в оперативку, результат можно смело забрать "программатором" при отладке. Вдобавок можно забрать ещё и ключ. Непорядок! :hehehe:

Что же делать? Надо как-то спрятать и не показывать ключ, а затем расшифровать им прошивку, не показывая результат в оперативке. Во, засада. К счастью, мне на глаза попалась карта памяти чипа, где был указан дополнительный кусочек оперативки под именем "backup SRAM". Всего 4 Кб, зато каких! При уровне защиты №1, этот кусочек в 4 Кб не виден при отладке извне. Ну, просто подарок судьбы! Можно там и ключ положить, и буфер расшифровки сделать.
ЗЫ: уровень защиты №2 слишком суровый. Заблокировать отладку (запись и чтение) чипа навсегда - однозначно хардкор. У меня нет уверенности в том, что прошивка с веб загрузчиком сразу получится без косяков.
Аватара пользователя
Mamont
Мастер
Сообщения: 1953
Зарегистрирован: 10 дек 2015, 12:21
Репутация: 382
Настоящее имя: Виталий
Откуда: РБ Минск
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение Mamont »

Отладчик при защите n1 видит регистры контроллера? Если нет, то ключ может находиться в регистрах.
Расшифровку делать по байтно, и запихивать его сразу во флеш, без сохранения в озу.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

А где будет лежать этот расшифрованный байт перед заливкой во флэш? В открытой оперативке? (:
Аватара пользователя
Mamont
Мастер
Сообщения: 1953
Зарегистрирован: 10 дек 2015, 12:21
Репутация: 382
Настоящее имя: Виталий
Откуда: РБ Минск
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение Mamont »

в регистре
(опять таки,не знаю особенностей этих контроллеров, если регистры доступны при отладке, то нет смысла)
тем более если есть решение с "backup SRAM"
Аватара пользователя
MX_Master
Мастер
Сообщения: 7465
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3088
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение MX_Master »

Там рядом с этим запасным кусочком ОЗУ, есть регистры RTC (80 байт). Они не видны. Про другие - не читал.

За побайтовый способ с хранением в регистрах - спасибо :beer_blow:
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: ЧПУ контроллер (STM32 + Ethernet + Web)

Сообщение Serg »

Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

Вернуться в «Электроника»