отзыв duxe.ru отзывы duxe.ru Шаговые двигатели и контроллеры в моем магазине duxe.ru

самодельный станок с ЧПУ, отзывы duxe.ru

Объявление

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » самодельный станок с ЧПУ, отзывы duxe.ru » Схема контроллера, шаговые двигатели » Контроллер станка с ЧПУ на PIC с возможностью автономной работы


Контроллер станка с ЧПУ на PIC с возможностью автономной работы

Сообщений 31 страница 60 из 237

31

bolt написал(а):

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

А чем контролировать и как выставить ток удержания, рабочий токи, с учетом того, что  на выходе ПИКа простые ключи на КП505, и могут быть установлены совершенно разные двигатели, каждый  со своим временем нарастания тока?

0

32

< Самый лучший вариант!!! >

Предлагаю не тянуть кота за непотребные места и просто людям, кто реально собирается делать в железе для тестов это чудо, собраться в чате каком нибудь и онлайн обсудить, потом записать ТТХ и выложить их на форуме для обсуждения например на 1 месяц. Потом приступить к работе.

Вот моя рука тем, кто хочет - ICQ 329582809... Со своей стороны я хотел бы обсудить эту тему с Мастером и Трудоголиком.

< Конец Самого лучшего варианта!!! > :-)

P.S. Собрал экспериментальный вариант драйвера на L297, есть плата в спринте. Собираюсь собрать еще два канала (каждый канал отдельно, что бы если что не переделывая плату расширить количество осей добавлением еще одной платы) и подключать их к контроллеру который будет через СОМ считывать GCode в память, обрабатывать его и выдавать команды управления драйверам.

Считаю что контроллер должен работать через СОМ,
-быть собран на Atmel железке (не настаиваю, но на мой взгляд для новичка оно проще),
-уметь читать стандартные флэш карты памяти (выбрать один вид карты и научить контроллер ее читать),
-уметь читать GCode, иметь возможность программной корректировки люфтов, задаваемых из программы с компьютера,
-уметь на выходе Step/Dir.

По возможности иметь несколько кнопок, для ручного позиционирования осей.
Желательно уметь отдавать номер шага GCode по COM в компьютер, для визуализации процесса на мониторе.
Иметь простой сегментный индикатор для отображения состояния.

Силовая часть должна уметь step/dir на входе, ШИМ. Больше имхо ненужно.
Зачем делать LCD и микрошаг для любительского станка если 99% пользователей ими не будет пользоваться, и стоимости это добавит прилично.

Программа:
-Конвертировать распространенные форматы в GCode.
-Сливать в контроллер через СОМ.
-Уметь передавать настройки в контроллер (например корректировка люфтов)
(теоретически можно конечно заставить программу на PC к каждой команде GCode добавить поправку, тогда разгрузим контроллер)
-уметь по полученным с СОМ номеру строчки рисовать на экране то-же что "рисует" станок.

ПРОШУ АДМИНИСТРАТОРА добавить мои ТТХ из другой ветки сюда, к сожалению я запутался и не нашел их в форуме.

0

33

подключать их к контроллеру который будет через СОМ считывать GCode в память, обрабатывать его и выдавать команды управления драйверам.

Извините, Вы сообщение №30, оно чуть выше Вашего до конца прочли?
Что из своих предложений Вы готовы реализовать?

Отредактировано bolt (2008-03-16 18:49:13)

0

34

Вопрос не в моих предложениях, а в том, что бы собрать все что кто либо предлагает, рассмотерть варианты и составить ТТХ, после чего уже решать, что можно взять, и кто на что способен.

0

35

Трудоголик написал(а):

Дело в том, что скорость движения инструмента определяется именно длительностью пауз между шагами, причем в любом случае хоть в режиме степ/дир, хоть в формате Романа.

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

Трудоголик написал(а):

Я и сказал, если паузы не писать, то контроллер должен иметь возможность установки скорости, тогда да, можно записать шаги,
а паузу между ними пусть сам контроллер устанавливает

А что мешает контроллеру установить скорость? Этот вопрос решает одна единственная переменная(задаёт паузу между выдачей имульсов степ).
Скорость прописывется в файле.
Контроллер её считывает и работает с ней.
Пример из реального файла. Стандарт - RS274x.
Файл *.tap
После двух косых палок - мои комментарии.
% // (rewind stop code / parity check)
T1C0.028F200S100 //T1 - Tool1(устанавливаем сверло №1), C 0.028 - диаметр сверла, F200 - скорость подачи сверла, S100 - скорость вращения сверла.
X-022250Y012250 //Ну тут всё понятно - по этим координатам нужно просверлить отверстия инструментом T1.
Всё просто как арбуз :)

Трудоголик написал(а):

С одной стороны согласен, но тогда  контроллер должен будет уметь считать все форматы:  PLT, HPGL, DRL,DXF,GBR, мало ли, может кто то захочет не только сверлить и выжигать.

Давайте не будем валить всё в одну кучу. :-) Екселон - только для сверления. PLT, DXF - для рисования и фрезеровки, но они легко конвертируются в гербер(CAD2CAM). Насчёт DRL и GBR не помню, но думаю что тоже конвертируются тем же конвертером. А уже сконвертированный файл заливаем в контроллер.

Трудоголик написал(а):

Мое предложение другое, контроллер должен уметь считать данные только  в формате G-кода(возможен  другой вариант)

Именно это я и предлагаю. В качестве возможных других вариантов - екселон(если нужно только сверлить).

0

36

Трудоголик написал(а):

А как драйвер определит необходимую длительность каждого микрошага?

А зачем ему определять минимальную длительность? Его задача - сделать шаг при поступлении сигнала степ. Шаг фиксирован и задаётся при изготовлении драйвера.

Трудоголик написал(а):

По идее контроллер должен рассчитать длительность каждого шага, поделить это время  на нужное количество микрошагов и для каждого микрошага дать команду драйверу на установку необходимого соотношения токов в обмотках.

Это уже проблема драйвера :) Если мы ещё и их тут обсуждать начнём, то совсем участников форума запутаем. :)
Ведь есть же уже отдельная тема для степ дир драйверов. ;)

Трудоголик написал(а):

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

Зачем? Шаг, на который драйвер поворачивает двигатель есть константа. Она известна контроллеру. Он и выдаст столько импульсов, сколько нужно.

0

37

bolt написал(а):

Нюансы перевода координат в шаги. Если прямая под 45гр. то оба привода
синхронно делают шаг, а если 5..10гр., то надо между нескольких шагов по Х
втыкать шаг по У.

При сверлении - не актуально. При фрезеровании например дорожек платы в 2D можно делать пятачки подрезанными под 45 градусов. А вот при рисовании и фрезеровании в 3D - да, большущий вопрос. Причём ПРЯМУЮ линию можно получить только под углом в 45 градусов. Если не прав - поправьте. При угле наклона же отличном от 45 будем получать линию весьма отдалённо напоминающую прямую. Интересно, как Роман решил этот вопрос - может он подскажет?

bolt написал(а):

РС позволяет это просчитать довольно точно со всеми
поправками на люфты и передачи, а ПИК не сможет.

Насчёт сможет или нет - буду пробовать. Для начала нужно разобраться с ограничениями.
Например. Есть плоскость с двумя осями(Х,У). Цена деления каждой оси равна минимальному расстоянию перемещения станка. Задача - нарисовать прямую линию на этой плоскости. Координаты начала линии 0,0. Координаты конца линии... ну пусть будут 3,1. На мой взгляд это не сможет просчитать ни МК ни PC. Если заблуждаюсь - поправьте. Как быть с таким ограничением? Навскидку видится только такой вариант - ввести ограничение на минимальное расстояние между соседними значениями координат, а саму линию рисовать при помощи прямых вертикальных, горизонтальных и наклоненных под 45 градусов линий. Если так, то сколько минимальных перемещений станка должно составлять минимальное расстояние между соседними значениями координат? Ну пусть это значение будет равно десяти например. А как быть в ситуации, если в файле, из которого будут считываться координаты, по какой-то причине значение между соседними значениями координат окажется очень маленьким ( например 1-10) минимальных шагов станка?
У меня уже голова закипела - всю ночь не спал. Выручайте! :)

Отредактировано koolhatcker (2008-03-17 07:18:13)

0

38

Трудоголик написал(а):

А чем контролировать и как выставить ток удержания, рабочий токи, с учетом того, что  на выходе ПИКа простые ключи на КП505, и могут быть установлены совершенно разные двигатели, каждый  со своим временем нарастания тока?

Если речь про ПИК, который есть драйвер(на входе степ/дир, на выходе - 0 и 1 для ключей), то у ПИКов есть АЦП и ШИМ внутри - будет считывать с напругу с шунта и на её основе менять скважность ШИМ. Величины токов задаются при программировании правкой байта в прошивке на нужный. Либо можно применить ПИК без АЦП и прилепить внешний ШИМ (494, 3842). На основе данных степ выдывать 0 в обвязку ШИМ (шунтировать резистор) и таким образом менять ток через обмотку.

0

39

Андриано написал(а):

собраться в чате каком нибудь и онлайн обсудить, потом записать ТТХ и выложить их на форуме

А почему бы не обсудить здесь?

Андриано написал(а):

Считаю что контроллер должен работать через СОМ,

А кто напишет управляющую программу для работы через COM?

Андриано написал(а):

-быть собран на Atmel железке (не настаиваю, но на мой взгляд для новичка оно проще),

Да ничем оно не проще...
У пиков программатор чуть сложнее, у атмела путаница с фьюзами при программировании.
Могут и вобще кристал раком поставить.
Для новичков паритет имхо...

Андриано написал(а):

-уметь читать стандартные флэш карты памяти (выбрать один вид карты и научить контроллер ее читать),

Из стандартных - только ММС через SPI либо сразу USB.
Нужно ли оно большинству? Может быть устроить опрос?

Андриано написал(а):

-уметь читать GCode,

Само собой. Вопрос - в списке кодов. ВСЕ точно не нужны.

Андриано написал(а):

Желательно уметь отдавать номер шага GCode по COM в компьютер, для визуализации процесса на мониторе.

Если контроллер автономный, то зачем?

Андриано написал(а):

Зачем делать LCD и микрошаг для любительского станка если 99% пользователей ими не будет пользоваться, и стоимости это добавит прилично.

Стоимости добавит рублей 400. Позволит например контролировать процесс, при сверлении из экселоновского файла задавать с клавиатуры глубину сверления, при фрезеровании задавать скорость подачи и т.д...

Отредактировано koolhatcker (2008-03-17 06:12:59)

0

40

Опять блин все проспал. Ясно одно, мы не на заводе и дядя начальник общую задачу не сформирует. Каждый будет делать из того что под рукой и отстаивать свою корову.
Буду делать так: степ/дир с компа в МК, с МК управляющие сигналы на ключи ШД, ну и клавиатура моторчики крутить. Это для начала. А там и до памяти доберемся. У 877 на все это хозяйство ног хватит, еще и останется. Результат: один корпус МК, набор ключей большая база для расширений.

0

41

life написал(а):

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

В процессе чего не единожды наступит на грабли :) Сообщит общественности об этих граблях и мертворожденные варианты отпадут сами собой. :)
Я вот кажется уже хорошенько так наступил... :(
Как бы не закончилось всё тем, что в автономе можно будет только сверлить и работать с 2D .Причём сугубо линиями с углом в 90 и 45 градусов...

life написал(а):

Буду делать так: степ/дир с компа в МК, с МК управляющие сигналы на ключи ШД

Если я вас правильно понял, то вы хотите подать с компа степ/дир на МК, в МК преобразовать 3 пары степ/дир в последовательность двенадцати нулей и единиц и ещё организовать питание 3-х двигателей с ШИМ стабилизацией тока тем же самым МК?
Мне всё же ближе модульный вариант со степ/дир драйверами с ШИМ и отдельным МК - как минимум позволяет снять ряд ограничений и уменьшить время разработки. Но решать конечно же вам. Ресурсоёмкость задач вы уже прикинули?

life написал(а):

У 877 на все это хозяйство ног хватит, еще и останется. Результат: один корпус МК, набор ключей большая база для расширений.

Я ПОКА решил отлаживать основной контроллер на 16F628. Результат - внешняя память, LCD дисплей, клавиатура 3х3, 3 пары выходов на драйверы, управляемые по step/dir. Код практически без изменений переносится на другие ПИКи с количеством ног таким же или более. В железе же скорее всего буду воплощать на 16F876. Ну нет у меня 877, а 876 валяется уже года 4 без дела.

0

42

koolhatcker написал(а):

А зачем ему определять минимальную длительность? Его задача - сделать шаг при поступлении сигнала степ. Шаг фиксирован и задаётся при изготовлении драйвера.

Речь идет о временных интервалах, а не просто коммутации обмоток.
Получив шаг, драйвер должен будеть поделить его на 2,4,8 микрошагов, равных по времени, а как он это сможет сделать, не зная, когда поступит следующий шаг?

0

43

koolhatcker написал(а):

то у ПИКов есть АЦП и ШИМ внутри - будет считывать с напругу с шунта и на её основе менять скважность ШИМ.

Вы наверное упустили нить рассудждений.
Речь шла о формировании импульса форсажа, по сигналу с ПИКа. Но разным двигателям нужен разный импульс.  Потому и стоял вопрос о контроле и управлении.
Если речь идет о ШИМ, то не надо ничего придумывать, для схемы ШИМ или импульсного ограничителя тока практически задается только одна величина - пиковый ток в обмотке, а это делается подбором токоизмерительного резистора или регулировкой дополнительным потенциометром.

0

44

koolhatcker написал(а):

В процессе чего не единожды наступит на грабли  Сообщит общественности об этих граблях и мертворожденные варианты отпадут сами собой.

Чувствую, что граблей будет очень много.
Основная причина - большинство програмистов слабо разбираются в основах и принципах шагового управления. Почитайте внимательно статью патриарха шагового управления Леонида Ридико, по ссылке "Вся правда о шаговом двигателе", на первой странице темы "Шаговые двигатели", многие вопросы отпадут сами собой.
В этой же статье есть практический пример реализации контроллера на МК с алгоритмами. НА той же странице форума есть ссылки на другие материалы. БУдет очень полезно.

0

45

koolhatcker написал(а):

Если я вас правильно понял, то вы хотите подать с компа степ/дир на МК, в МК преобразовать 3 пары степ/дир в последовательность двенадцати нулей и единиц и ещё организовать питание 3-х двигателей с ШИМ стабилизацией тока тем же самым МК?

Преобразовать степ/дир в последовательность для ШД  вобще то не проблема. Задаем для каждого  ШД свой регистр, поступает импульс степ уходим в прерывание и играем с нужным регистром выдавая последовательность на выход, хоть шаг, хоть два полушага и т.д. А вот с шимом немного проблема, у камня только два ШИМ модуля, ну я думаю и с этим справлюсь. Кстати, отрабатывать часть программы степ/дир - ШД буду тоже на 628.

0

46

Трудоголик написал(а):

Получив шаг, драйвер должен будеть поделить его на 2,4,8 микрошагов, равных по времени

Не пойму зачем? Получив шаг, драйвер на ПИКе берёт байт из таблицы и кидает его в порт. 1 степ на входе драйвера - 1 шаг двигателя. Можно даже просто двигать состояние порта влево или вправо. Если вы про формирование синусоиды из ступенек - то я не об этом, а о более простом варианте. :) Я про полушаг.

Отредактировано koolhatcker (2008-03-17 10:59:15)

0

47

Трудоголик написал(а):

Вы наверное упустили нить рассудждений.
Речь шла о формировании импульса форсажа, по сигналу с ПИКа.

Речь шла об этом:
"А чем контролировать и как выставить ток удержания, рабочий токи, с учетом того, что  на выходе ПИКа простые ключи на КП505, и могут быть установлены совершенно разные двигатели, каждый  со своим временем нарастания тока?"
На это я и ответил.

Трудоголик написал(а):

Если речь идет о ШИМ, то не надо ничего придумывать, для схемы ШИМ или импульсного ограничителя тока практически задается только одна величина - пиковый ток в обмотке, а это делается подбором токоизмерительного резистора или регулировкой дополнительным потенциометром.

Я же предложил ввести вторую величину - ток удержания. Ну, чтобы постоянно ампер или больше через обмотку не гнать, а снижать ток в 2 раза в моменты длительного бездействия . Хотя тем, у кого двигатель не будет сильно греться при постоянном рабочем токе, можно ничего и не снижать.

0

48

Трудоголик написал(а):

Основная причина - большинство програмистов слабо разбираются в основах и принципах шагового управления.

Это вы в чей огород? ;) По крайней мере у меня PIC двигатель крутит исправно. :)

Трудоголик написал(а):

Почитайте внимательно статью патриарха шагового управления Леонида Ридико, по ссылке "Вся правда о шаговом двигателе", на первой странице темы "Шаговые двигатели", многие вопросы отпадут сами собой.

Благодарю за пожелание, но статью эту читал ещё несколько лет назад. Ничего нового не узнал. Вопросы не отпали, а появились - если вы Леонида занесли в патриархи шагового управления, то кто же тогда по вашему Такаши Кенио? :)

0

49

А кто напишет управляющую программу для работы через COM?

Я сделаю, надо только определится с тем, что кроме step/dir будем заслать в МК.
У нас три варианта форсажа: завышенное питание и ШИМ реализуемый МК, бустер или ШИМ с управлением от МК, МК не участвует (такой разгон в другой ветке).
Есть еще ,предложенный здесь, модульный принцип с 6-ногими PIC12. По двум ногам можно засылать тактовые ШИМ с основного МК (~pic16f628). Т.е. частота, длительность и право/лево. Нет импульсов - удержание. Но тогда только полушаг. Вариант интересен тем, что модуль может работать автономно (пара кнопок и генератор). С этого и начнем

Токи режимов выставляются юзером по нагреву ШД. Ток подвода - напряжением питания. Ток удержания - 50% от рабочего. А вот рабочий ток надо задавать в настройках.

Отредактировано bolt (2008-03-17 10:49:47)

0

50

bolt написал(а):

Я сделаю, надо только определится с тем, что кроме step/dir будем заслать в МК.

В МК можно засылать и RS274x :)

bolt написал(а):

Т.е. частота, длительность и право/лево. Нет импульсов - удержание. Но тогда только полушаг. Вариант интересен тем, что модуль может работать автономно (пара кнопок и генератор). С этого и начнем

С частотой и право/лево понятно. А длительность зачем? Почему не фиксированная? Да, конечно полушаг. Я на данном этапе только его и имел в виду - ведь модульная конструкция подразумевает возможность установки простых драйверов.

bolt написал(а):

Токи режимов выставляются юзером по нагреву ШД. Ток подвода - напряжением питания. Ток удержания - 50% от рабочего. А вот рабочий ток надо задавать в настройках.

А вот тут не совсем понятно. Речь о драйвере? Если да, то по какой схеме?

0

51

koolhatcker написал(а):

Я про полушаг.

А я говорил о микрошаге.

0

52

koolhatcker написал(а):

"А чем контролировать и как выставить ток удержания, рабочий токи, с учетом того, что  на выходе ПИКа простые ключи на КП505, и могут быть установлены совершенно разные двигатели, каждый  со своим временем нарастания тока?"

Вообщето изначально речь шла о предложении BOLT-a - переходить в удержание сразу после окончания движения" ( сообщние 31)
Вот меня и интересует вопрос - как контролировать этот момент?
И что именно считать окончанием движения, момент поворота двигателя на один шаг, или момент, когда началось движение по другой оси? Извините, если я вас неправильно понял.

0

53

koolhatcker написал(а):

Задача - нарисовать прямую линию на этой плоскости. Координаты начала линии 0,0. Координаты конца линии... ну пусть будут 3,1. На мой взгляд это не сможет просчитать ни МК ни PC. Если заблуждаюсь - поправьте.

Для вашей задачи несложно.
Для начала делается расчет расстояний(или целых шагов)по осям,будет  3 и 1( или например 300 и 100 шагов,  затем вычисляется соотношение расстояний (или целых шагов) получится 3:1, контроллер посылает три шага по одной оси, один по другой. Точность получается максимально возможной для полношагового режима.
В полушаге можно делать полшага и полтора шага, точность будет еще выше.

В случае нецелого соотношения длины пробега существует метод коррекции ошибок или метод приближения, в которых делаются  ограничения на точность.

Отредактировано Трудоголик (2008-03-17 14:02:34)

0

54

МК можно засылать и RS274x

Об этом лучше забыть, причины в той самой точности. А с базовым форматом СОМ проги пока подумаем. Хотя 274 нам подходит. На случай, если СОМ версия VRI в планы Романа не вписывается, обсуждение можно перенести на http://klev.fastbb.ru/

Длительность нам нужна для рабочих режимов
(фрезеровка/выжигание/электроискровое), иначе перегреем ШД.

Для совместимости со стандартными step/dir используем такую схему
http://klev.land.ru/CNC/sdp12.gif
Но с расшаренными возможностями.
1. Предача не только частоты, но и длительности импульса
2. Автоматический переход в удержание 50% током

! Обратите внимание на входы. MCLR и CLK
используем для управления. Старые типы чипов (84, 73, etc) не годятся

по сути, окончанием движения является отсутствие импульсов на входе step модуля или 0000 0000 в байте количества шагов про СОМ управлении. Т.е. через 5мс укорачиваем импульс до ???мс. По-хорошему надо сначала измерить входной шаг, а потом урезать до 20% от подвода или до половинки рабочего.  Можно и просто до ~0,3ms, что более-менее подходит для всех моторчиков.
Для начала остановимся на модульной конструкции, совместимой со штатной. У нее есть несколько вариантов управления: LPT (VRI), COM (через пару дней нарисую версию для тестирования), ручное.

Отредактировано bolt (2008-03-17 16:11:55)

0

55

Максимальная частота нам известна - мы ее в настройках проги задали. Рабочая скорость тоже там. Вся беда, что имея только ПИК модуля stepdir, его проще сразу прошить под конкретный двигатель.
Исходя из общедоступности, получается внешний ШИМ на все три режима удобнее. Вплоть до аналогового регулятора на паре транзисторов. А сам модуль с МК вместо регистра сдвига не нужен.
Я что-то упустил или есть другие идеи?

Отредактировано bolt (2008-03-17 16:40:41)

0

56

Ключевой момент:

koolhatcker написал(а):

Цена деления каждой оси равна минимальному расстоянию перемещения станка.

Трудоголик написал(а):

Для вашей задачи несложно.
Для начала делается расчет расстояний(или целых шагов)по осям,будет  3 и 1

3,1.

Трудоголик написал(а):

контроллер посылает три шага по одной оси, один по другой.

И что получится в результате такого художества? Вам не кажется, что это будет совсем даже не прямая линия :)

0

57

koolhatcker написал(а):

И что получится в результате такого художества? Вам не кажется, что это будет совсем даже не прямая линия

Нt кажется, я даже уверен, именно так и будет!

А как может быть иначе, если шаговый двигатель делает шаги, а не крутится плавно?

При перемещении по любой траектории точность(ступенчатость)  будет определяться величиной одного шага (полушага, микрошага)  двигателя, при условии пряморукости программиста, создававшего алгоритм перемещения.

0

58

бег по кругу получается :(

Для автономной работы нужны:
Программа с поддержкой СОМ // сброс данных в удобном формате, 2byte на ось
Один контроллер // чтение памяти, управление ключами, сигнал режима
Бустер// для разгона, управляется с PIC

Другие варианты будут просто ремиксами stepdir или привязаны к возможности юзера перепрошить контроллер.

0

59

Как минимум 3 байта на ось.
Двух будет мало.

0

60

А чего в 2 байтах не хватает?

0


Вы здесь » самодельный станок с ЧПУ, отзывы duxe.ru » Схема контроллера, шаговые двигатели » Контроллер станка с ЧПУ на PIC с возможностью автономной работы