Jump to content

    
Sign in to follow this  
MX_Master

Простенький ЧПУ контроллер

Recommended Posts

В продолжение темы про защиту открытого бинарника прошивки ...

Уже давно хочу сделать простенький вариант ЧПУ контроллера. Чтоб можно было и с готовыми ЧПУ системам (Mach3, LinuxCNC, ...) юзать. И, при желании, со своим вариантом ЧПУ связку сделать. Одна только проблема - в электронике не силён. Все варианты схем и разводки платы буду выкладывать прямо здесь. Опытных людей здесь много. Поэтому, если не трудно, посмотрите, что у меня получилось и обязательно дайте пинка где что исправить.

Проект рисовал в easyeda, чтоб было удобно расшарить и, в последствии, заказать изготовление плат (с монтажом или без).

Что требуется от контроллера:

  • Быстрая коммуникация c ПК по сети (Ethernet 10/100)
  • Достаточное кол-во цифровых входов/выходов (с переключаемыми уровнями 5..24V) для управления шаговыми (и серво) драйверами, лазерными модулями, энкодерами, концевиками, индуктивными датчиками и т.п.
  • Как минимум один порт RS485 для управления частотниками (VFD)

https://oshwlab.com/MX_Master/MX32

Schematic_MX32_2021-08-18.pdf

Schematic_MX32_2021-08-18.svg

Schematic_MX32_2021-08-18.thumb.png.465d4bd74d786b105d6d9350c612d873.png

Share this post


Link to post
Share on other sites
24 minutes ago, MX_Master said:

Проект рисовал в easyeda

Пока такие замечания:

1. Рисуйте линии от ножки до ножки. Очень непросто читать схему, где все пины висят фактически в воздухе, и приходится мысленно строить связи от метки до метки, а иногда и до нескольких меток.

2. Метки делайте одного цвета, например чёрные.

3. Между цифровым значением и обозначением единицы измерения ставьте пробел. Т.е. не 470К, а 470 K. А ещё лучше 470 кОм.

4. Рисуйте порты питания. Т.е. не просто GND или +3V3, а общепринятый символ общего провода и стрелочка вверх для питания.

5. Обозначения пишите рядом с компонентами, а то для резисторов пишите внутри, например.

6. Лучше подписывать назначение каждого разъёма, а не просто писать над ними сверху "Цифровые выходы". Потому что Вам понятно, а мне, например, приходится просматривать столбец этих выходов, и убеждаться, что это точно выход.

По функционалу:

1. Нет защит цифровых входов от перенапряжения, статики. Здесь можно посмотреть эту тему.

2. Нет защит цифровых выходов от элементарного КЗ или подачи на этот выход напряжения. Посмотреть можно верхнюю тему, и поискать по форуму.

3. Нет защиты RS-485 от статики, перегрузки по напряжению и т.п.

4. Нет ни одного предохранителя ни где. Схема выглядит какой-то ненадёжной без этого)

5. Не понятно, что будет вставляться в сокеты, обозначенные на скрине.

image.thumb.png.d2ae8051d847b6b0f4d6cd86fd8654a9.png

24 minutes ago, MX_Master said:

Уже давно хочу сделать простенький вариант ЧПУ контроллера.

Может быть проще купить что-то готовое на али, и переписать прошивку. Это в плане железа.

Share this post


Link to post
Share on other sites

Странная какая-то схема: ноги наугад раскиданы что ли? Я вот делаю нечто подобное (трехкоординатная подвижка для небольшой CMOS-камеры). И мне для трех двигателей с трудом всех таймеров STM32F072CBT6 хватило: один таймер генерирует ШИМ для ноги STEP драйвера ШД, второй таймер забирает сигнал с инкрементного энкодера.

Share this post


Link to post
Share on other sites
4 hours ago, haker_fox said:

Может быть проще купить что-то готовое на али, и переписать прошивку.

Не проще: там обычно трассировка через одно место сделана, а не как положено. Так что, только свое с нуля разрабатывать! Почему-то у китайцев не принято на двигатели вешать энкодеры, т.е. им вообще наплевать: застрял вал, не застрял. Тяп-ляп - и в продакшн! И STEP-импульсы они ногодрыгом генерируют, а не таймером.

В общем, идеальный показатель того, как делать нельзя.

Share this post


Link to post
Share on other sites

Про косяки рисования понял. Про защиту понял. Вечером посижу над этим в редакторе, потом покажу результат. 

В непонятные сокеты втыкаются двухпиновые перемычки. Надо этот момент наглядно отразить в схеме. Если перемычки нет, то можно подключать на вход сигналы до 24V. Если перемычка есть, то только до 5V.

Готовые китайские платы я бы с удовольствием покупал. Но у китайцев никогда не получается развести входы/выходы так, чтоб хотя бы что-то нормально попало на аппаратные таймеры. Китайцы предпочитают выводить и считать сигналы программно. А это мне не подходит. 

Share this post


Link to post
Share on other sites
7 часов назад, MX_Master сказал:

Уже давно хочу сделать простенький вариант ЧПУ контроллера. Чтоб можно было и с готовыми ЧПУ системам (Mach3, LinuxCNC, ...) юзать.

Если только круче вот этой системы: https://purelogic.ru/catalog/elektronika/kontrollery_chpu/

Иначе что-то делать смыла никакого.

Share this post


Link to post
Share on other sites
7 часов назад, haker_fox сказал:

1. Рисуйте линии от ножки до ножки. Очень непросто читать схему, где все пины висят фактически в воздухе, и приходится мысленно строить связи от метки до метки, а иногда и до нескольких меток

Это не всегда удачное решение. Часто в паутине таких линий запутаться проще, чем мысленно строить связи. Когда линий много и они идут вместе гораздо более читаемо выглядят шины. Причем отдельные шины для каждой логически связанной группы сигналов, а не одна глобальная шина на весь лист (в этом случае от нее пользы тоже нет). Примерно так:

image.thumb.png.5406649ba4000de866f8e127a0a4912b.png

Share this post


Link to post
Share on other sites
13 часов назад, Eddy_Em сказал:

один таймер генерирует ШИМ для ноги STEP драйвера ШД

Зачем генерировать шаги ШИМом??

13 часов назад, Eddy_Em сказал:

И STEP-импульсы они ногодрыгом генерируют, а не таймером.

В общем, идеальный показатель того, как делать нельзя.

А представляете, на старых ЧПУшках не было столько таймеров и там ногодрыгом все делалось, разве, что для энкодеров ставили спец. счетчики, и нормально было вполне)) Поэтому, когда сам разводил схему контроллера когда-то давно, предпочел использовать таймеры МК именно для работы с энкодерами, а не ШД..

Edited by mantech

Share this post


Link to post
Share on other sites
19 часов назад, MX_Master сказал:

Уже давно хочу сделать простенький вариант ЧПУ контроллера. Чтоб можно было и с готовыми ЧПУ системам (Mach3, LinuxCNC, ...) юзать. И, при желании, со своим вариантом ЧПУ связку сделать.

Не из праздного любопытства, зачем изобретать велосипед? Вроде у MESA открыты исходники, повторяй, да расширяй систему. Оптимальность кода не вызывает никаких сомнений, видно, разрабатывали далеко не глупые люди. Сделать что-то свое, тем более на микроконтроллере, близкое по надежности и стабильности, очень сложно. По цене тоже не вижу выигрыша.

Share this post


Link to post
Share on other sites
2 hours ago, mantech said:

Зачем генерировать шаги ШИМом??

Потому что других вариантов нет, чтобы надежно получить постоянную скорость!!!111

2 hours ago, mantech said:

ногодрыгом все делалось

Это называется "гланды через задницу удалять". Оно вроде работает, а на деле — нет!

Даже в убогих восьмибитках конструкция вида "for(int i=0; i<N;++i);" будет зависеть от того, сработало прерывание в этот момент, или нет! А в ARM'ах с их конвейером, вообще нельзя так делать.

Для фрезеров же крайне важно, чтобы движение бура было равномерным, иначе даже несчастной 50-микронной точности не добьешься!!!111

Edited by Eddy_Em

Share this post


Link to post
Share on other sites
14 hours ago, Сергей Борщ said:

Это не всегда удачное решение. Часто в паутине таких линий запутаться проще, чем мысленно строить связи.

На схеме автора мне показалось загрузки линиями не будет. Естественно я подразумевал, что количество линий должно быть разумным, в т.ч. нужны и шины. На предприятии у меня именно так и рисуем)

4 hours ago, mantech said:

Зачем генерировать шаги ШИМом??

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

 

2 hours ago, rloc said:

тем более на микроконтроллере

А чем плох микроконтроллер? И на чём можно делать надёжные и стабильные системы?

Share this post


Link to post
Share on other sites
3 часа назад, haker_fox сказал:

А чем плох микроконтроллер? И на чём можно делать надёжные и стабильные системы?

У автора в качестве примера были указаны контроллеры, применяемые в LinuxCNC и Mach3. Это системы, где расчетом траектории занимается хост-машина, а на контроллер возлагаются логические задачи. Для меня, вполне очевидным видится применение FPGA из самых простых и доступных серий.

Share this post


Link to post
Share on other sites
5 hours ago, Eddy_Em said:

Потому что других вариантов нет, чтобы надежно получить постоянную скорость!!!111

Это называется "гланды через задницу удалять". Оно вроде работает, а на деле — нет!

Даже в убогих восьмибитках конструкция вида "for(int i=0; i<N;++i);" будет зависеть от того, сработало прерывание в этот момент, или нет! А в ARM'ах с их конвейером, вообще нельзя так делать.

Для фрезеров же крайне важно, чтобы движение бура было равномерным, иначе даже несчастной 50-микронной точности не добьешься!!!111

 

Вы почему-то исходите из соображений, что шпиндель ЧПУ должен "летать" на пределах скоростных возможностей шаговых двигателей и остальной механики. На самом деле фрезеровка это достаточно медленный процесс. Скорость подачи определяется из технологических соображений (материал, глубина фрезеровки, диаметр фрезы, скорость вращения шпинделя и т.д.). Поэтому  ногодрыг может быть вполне допустим, если прерывания добавляют небольшой джиттер.  Я уже писал, что мой хоббийный ЧПУ нормально работает на древнем РС (Sempron 1.66ГГц) под Вин ХР через LPT порт. Точность 20мкм обеспечивает.

 

Share this post


Link to post
Share on other sites
30 minutes ago, rloc said:

FPGA из самых простых и доступных серий.

Гм... и снова не понимаю. Чем микроконтроллер с ядром Cortex-M4(F) для расчёта траекторий и управления двигателями? У этой микроархитектуры есть расширения для ЦОС. Если программировать умеючи, то можно решить поставленную задачу, я думаю.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this