самодельный станок чпу (cnc)

Sergei-md
student:

…а как насчет гистерезиса, торсионной жесткости и всяких там моментных характеристик? шаговые двигатели смогут обеспечить такие же параметры как серийный какойнить мотор-редуктор с редуктором хайпрецижн? Ведь нужна не только точность но и жесткость привода! Ведь в станках жесткость - одно из ключевых понятий!..Хотя я не станочник, 😵

уважаемый, прочтите название данной темы. если здесь опять начнём обсуждать “… гистерезиса, торсионной жесткости и всяких там моментных характеристик…” , " …мотор-редуктор с редуктором хайпрецижн…" , то сташно становиться что либо делать.
Я понимаю желание каждого сверкнуть своим высоко образованым умом, но может пора уже обсуждать
вопросы как быстрее, проще и дешевле собрать станок “на коленках” из подручных материалов

MOLDMAKER

Sergei-md
Согласен полностю с тобой.
Уходит от темы начинаем. А вообще будет интересно посмотреть, как мы этого старика Гистерезиса присобачим на шпильку М8 😁

Кстати, у ХАЙВИНА естьтакая штука как “крестовый привод”. То есть, полуфабрикат на оси Х и У для фрезерного станка. Остается только построить ось Z.

pavel

а адрес зтого ХАЙВИНА у Вас есть???

MOLDMAKER

pavel
Нет, Павел.
Их представителя в Москве я не нашел. Вернее есть они, но не официальные дистрибьюетры, что-ли, а типа перепродавцов. Не знаю как их правильно назвать.

Вот одни из них: www.mechatron.su/index.html

KES
=DS=:

Токозадающие резисторы по этой схеме это R14 и R15, a R12C3 и R13C4 это фильтр. Расчет резистора на нужный ток есть в даташите. У меня отложилась в памяти цифра между 0,33 и 0,41ом для ДШИ, но это было давно, лет 5 назад, может и ошибаюсь.

R14 и R15 тоже коротил особо ни чего не менялось, может БП слабоват 200W один канал L297+8

Совсем разочаровался в связке L297+8

tvv

Читаю… Интересно. Год назад, сделал электронную линейку на базе инкриментального энкодера. Точность до 6 знаков после запятой(понимаем как электронную). Програмируется на любой энкодер и любой винт. Значение перемещения вычисляется как количество импульсов деленное на константу. Константа вычисляется как расчетная величина зависящая от параметров энкодера, передаточного количества с энкодера на винт, и шага винта, один раз во время калибровки. Проверял в работе при скорости вращение вала энкодера 100 об.мин.Итого 1000 имп. на оборот х 100 = 100 кГц работало без проблем. Если есть интерес могу помочь. Кстати голый шаговый без апаратного контроля ненадежное решение. На немецком оборудовании, которым сейчас я занимаюсь, есть смачные шаговые приводы (1000 шагов) с абсолютными энкодерами.Но их цена это их цена. Обратная сторона точности-скорость.

Gorien
tvv:

Читаю… Интересно. Год назад, сделал электронную линейку…

Молодца 😃, круто…, непонятно, только решили ведь что обратная связь ну уж точно не для HOBBY CNC.

Художник

Да уже устал копья ломать, даже для серъёзных промышленных приложений это редко используется.

При нормальном режиме работы ШД, количество импульсов на ШД пропорционально перемещению. При ненормальном режиме, проблемы будут даже при наличии обратной связи (ОС), кроме того, дешевле и эффективнее серво, чем ШД с ОС.

tvv,
Вы в какой области работаете?

Тем паче, что 100 об/мин даже для хобби маловато.

tvv

Работаю в немецкой машиностроительной фирме.
Речь идет о частоте счета импульсов от энкодера для микроконтролера. который к тому же делает и другие задачи (динамическая развертка на индикатор, деление на число с плавающей точкой). Получается если шаг резьбы 1мм и передаточное с вала винта на вал энкодера 1:1, допустимая скорость перемещения 100мм за секунду с точностью счета 1 тысячная. Если устраивает точность до сотки, делаем передаточное 10:1, и имеем скость перемещения 1000мм за секунду. Измерял точность механики червяка на новом оборудовании(полиграфия). Максимум видел 1-2 сотки. Часто они делают хитро. После перемещения винта, знаки после запятой для индикации, заменяются на заданные оператором, а не реальные от энкодера, так как остановить привод точно просто не реально. Скорость перемещения на буржуйском оборудовании тоже в пределах сотен мм. для частотного привода. После остановки тормозит-электро магнитной муфтой.

Обошлось по деньгам приблизительно 100 енотов.Самое дорогое белорусский энкодер-80 уе.

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

Cаша
tvv:

Чесно говоря не верю в ЧПУ на коленках, если это конечно не вопрос жизни. Много засад в механике и электрике тоже. Или этим должен заниматься коллектив.

уважаемые гуру так можно отбить желание у начинающих в области чпу станков , а свой фрезерный станок я собрал не то что на “коленках”, я бы сказал бы на “ладонях” и обошелся он мне в каких нибудь 6-8 тыс рублей и пусть он выглядит игрушкой и это была всеголишь первая ступень к моей цели , тем не менее он уже способен выполнять работы по металлу ( пример бронза) с точностью примерно 0.05мм и размером 50на 50 мм и делает сложные рыльефы, что уже непложо для желающего , с низкими доходами, начать потихоньку свое дело, так что существует и такой путь и помогал ине в этом --форум с его участниками— это был мой единственный коллектив, и засады в механике и электрике не таки уж и страшные. все канечно зависит от задач которые будет выполнять станок.

Художник

tvv,

Уважаю немецкие машиностроительные фирмы, но имел ввиду не в какой фирме работаете, а чем фирма занимается, станками ЧПУ или например, прецизионными измерениями?

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

По поводу арифметики. Вы пишите:
“Проверял в работе при скорости вращение вала энкодера 100 об.мин.”
Далее:
“Получается если шаг резьбы 1мм и передаточное с вала винта на вал энкодера 1:1, допустимая скорость перемещения 100мм за секунду”
Чё то не клеится, при шаге 1мм на оборот, при скорости 100 оборотов в минуту, получим 100 мм в минуту, то есть 1,66 мм в секунду, никак не 100.

Черепаха раза в пять быстрее идёт.

Вообще что за ШД, сколько фаз, момент на валу, максимальная частота отработки импульсов полного шага, номинальная частота приемственности?

И что за винт, 1 мм/об?

“Проверял в работе при скорости вращение вала энкодера 100 об.мин. Итого 1000 имп. на оборот х 100 = 100 кГц работало без проблем.”

Что то у вас с арифметикой не в порядке, надо ещё на 60 поделить. Получите 1666 Гц.

Частота вращения вала двигателя 100 об/мин не годится даже для хоббийного станка, частота вращения на среднем станочке порядка 600 об/мин, если собираетесь с энкодера 1000 импульсов на оборот снимать, получите частоту 10 КГц.

“имеем скость перемещения 1000мм за секунду.”

60 метров в минуту.

На шаговике.

Круто. 😃

Так сколько же эта система стОит, где она используется и какие всё же у неё правильно посчитанные реальные характеристики?

MOLDMAKER

Саша

Тёзка - пральна говоришь.
Нам главное не мешать и пугать, а помогать и советовать 😃 😃 😃

Художник

Cаша, MOLDMAKER,

Правильно. Ещё задача предостеречь от ненужных трат времени и сил.

Обратная связь на хоббийном станке с шаговыми двигателями нафиг не нужна.

tvv

сори!!! Проверял не на двигателе. Это теоретическая величина ограниченная скоростью счета для энкодера. А так в общем, в жизни не хватает единомышлеников. Если у Вас есть возможность делать печатные платы и железо, готов возобновить работу на общее благо. Есть идеи, но квартира (ее размеры), не позволяет развернуться как хочеться.

Фирма делает экструдеры, флексопечатные машины и другое.
Двигатели Siemens, Berger, Arcopos, Aradec. Plc- B&R,
step5,7, Provit.
www.wuh-lengerich.de/index_ru.html
Длинные темы лучше по тел.1198181

sergant77

Помогите разобраться с шаговиком

Попался зверь (ДШИ 200-1-2) о восьми проводах, все одного цвета, вырваны из чего-то с мясом, как понять где какая обмотка???
я так понял разобрать надо??? А че там внутри???

Cаша
sergant77:

Помогите разобраться с шаговиком

Попался зверь (ДШИ 200-1-2) о восьми проводах, все одного цвета, вырваны из чего-то с мясом, как понять где какая обмотка???
я так понял разобрать надо??? А че там внутри???

у меня с ДШИ 200-1-1 были такие же проблемы подсоединен как на рис 4, сначало я прозвонил прибором 8 выходов и разбил их по парам , каждой паре соответсвует обмотка , дальше необходим проверенный контроллер вот подключая к нему двигатель как показано на рис 4 пробуеш разные варианты- сначало 1 контур , при правельном подключении хотя бы одного контура( на сколько я помню) вал дши руками трудно провернуть. потом 2=ой контур . таким образом на 3 двигателя у меня уходило не более 1 часа—другой способ я не знаю.

Художник

“я так понял разобрать надо??? А че там внутри???”

Не разбирайте, он точно собран, можете испортить.

STEPMOTOR

Кто писал прошивку для 3-х осевого контроллера на pic16f877 ?

Я пытаюсь но что-то с немогу сделать следующий алгоритм:
При поступлении на step вход МК сигнала происходит проверка наличия сигнала Dir, в соответствии дальше переключение обмоток в нужном направлении, и наконец загвоздка состоит в том чтобы следующий шаг происходил только при следуюшем поступлении сигнала. Могу сказать что задержка по временя не годится !
А вот исходник на PicBasic

device 16f877
declare xtal 20
Config HS_OSC, WDT_OFF, PWRTE_ON, BODEN_ON, LVP_OFF, WRTE_ON, CP_OFF, DEBUG_OFF

start:

’ set variables:
dim stepxA as byte
dim stepxB as byte
dim stepxC as byte
dim stepxD as byte

dim stepyA as byte
dim stepyB as byte
dim stepyC as byte
dim stepyD as byte

dim stepzA as byte
dim stepzB as byte
dim stepzC as byte
dim stepzD as byte

dim StepXArrayA[8] as Byte
dim StepXArrayB[8] as Byte
dim StepXArrayC[8] as Byte
dim StepXArrayD[8] as Byte

dim StepYArrayA[8] as Byte
dim StepYArrayB[8] as Byte
dim StepYArrayC[8] as Byte
dim StepYArrayD[8] as Byte

dim StepZArrayA[8] as Byte
dim StepZArrayB[8] as Byte
dim StepZArrayC[8] as Byte
dim StepZArrayD[8] as Byte

TRISD = %00000000
TRISC = %00000000
TRISE = %11000000

asm
bcf ADCON0,ADON
movlw 0x07 ;b’0000 0111’
bsf STATUS,RP0
movwf ADCON1
movlw 0x3F ;b’0011 1111’
movwf TRISA
clrf TRISE
endasm

input porta.0 ;dirX
input porta.1 ;stepX
input porta.2 ;dirY
input porta.3 ;stepY
input porte.0 ;dirZ
input porte.1 ;stepZ

StepXArrayA[0] = 0: StepXArrayB[0] = 0: StepXArrayC[0] = 0: StepXArrayD[0] = 1
StepXArrayA[1] = 0: StepXArrayB[1] = 0: StepXArrayC[1] = 1: StepXArrayD[1] = 1
StepXArrayA[2] = 0: StepXArrayB[2] = 0: StepXArrayC[2] = 1: StepXArrayD[2] = 0
StepXArrayA[3] = 0: StepXArrayB[3] = 1: StepXArrayC[3] = 1: StepXArrayD[3] = 0
StepXArrayA[4] = 0: StepXArrayB[4] = 1: StepXArrayC[4] = 0: StepXArrayD[4] = 0
StepXArrayA[5] = 1: StepXArrayB[5] = 1: StepXArrayC[5] = 0: StepXArrayD[5] = 0
StepXArrayA[6] = 1: StepXArrayB[6] = 0: StepXArrayC[6] = 0: StepXArrayD[6] = 0
StepXArrayA[7] = 1: StepXArrayB[7] = 0: StepXArrayC[7] = 0: StepXArrayD[7] = 1

StepYArrayA[0] = 0: StepYArrayB[0] = 0: StepYArrayC[0] = 0: StepYArrayD[0] = 1
StepYArrayA[1] = 0: StepYArrayB[1] = 0: StepYArrayC[1] = 1: StepYArrayD[1] = 1
StepYArrayA[2] = 0: StepYArrayB[2] = 0: StepYArrayC[2] = 1: StepYArrayD[2] = 0
StepYArrayA[3] = 0: StepYArrayB[3] = 1: StepYArrayC[3] = 1: StepYArrayD[3] = 0
StepYArrayA[4] = 0: StepYArrayB[4] = 1: StepYArrayC[4] = 0: StepYArrayD[4] = 0
StepYArrayA[5] = 1: StepYArrayB[5] = 1: StepYArrayC[5] = 0: StepYArrayD[5] = 0
StepYArrayA[6] = 1: StepYArrayB[6] = 0: StepYArrayC[6] = 0: StepYArrayD[6] = 0
StepYArrayA[7] = 1: StepYArrayB[7] = 0: StepYArrayC[7] = 0: StepYArrayD[7] = 1

StepZArrayA[0] = 0: StepZArrayB[0] = 0: StepZArrayC[0] = 0: StepZArrayD[0] = 1
StepZArrayA[1] = 0: StepZArrayB[1] = 0: StepZArrayC[1] = 1: StepZArrayD[1] = 1
StepZArrayA[2] = 0: StepZArrayB[2] = 0: StepZArrayC[2] = 1: StepZArrayD[2] = 0
StepZArrayA[3] = 0: StepZArrayB[3] = 1: StepZArrayC[3] = 1: StepZArrayD[3] = 0
StepZArrayA[4] = 0: StepZArrayB[4] = 1: StepZArrayC[4] = 0: StepZArrayD[4] = 0
StepZArrayA[5] = 1: StepZArrayB[5] = 1: StepZArrayC[5] = 0: StepZArrayD[5] = 0
StepZArrayA[6] = 1: StepZArrayB[6] = 0: StepZArrayC[6] = 0: StepZArrayD[6] = 0
StepZArrayA[7] = 1: StepZArrayB[7] = 0: StepZArrayC[7] = 0: StepZArrayD[7] = 1

main:
if porta.1=1 then

if porta.0 = 1 then
stepxA = stepxA + 1
stepxB = stepxB + 1
stepxC = stepxC + 1
stepxD = stepxD + 1
else
stepxA = stepxA - 1
stepxB = stepxB - 1
stepxC = stepxC - 1
stepxD = stepxD - 1
endif

PORTD.4 = StepXArrayA[stepxA]
PORTD.5 = StepXArrayB[stepxB]
PORTD.6 = StepXArrayC[stepxC]
PORTD.7 = StepXArrayD[stepxD]
endif
if porta.3=1 then

if porta.2 = 1 then
stepyA = stepyA + 1
stepyB = stepyB + 1
stepyC = stepyC + 1
stepyD = stepyD + 1
else
stepyA = stepyA - 1
stepyB = stepyB - 1
stepyC = stepyC - 1
stepyD = stepyD - 1
endif

PORTD.0 = StepYArrayA[stepyA]
PORTD.1 = StepYArrayB[stepyB]
PORTD.2 = StepYArrayC[stepyC]
PORTD.3 = StepYArrayD[stepyD]
endif
if porte.1=1 then

if porte.0 = 1 then
stepzA = stepzA + 1
stepzB = stepzB + 1
stepzC = stepzC + 1
stepzD = stepzD + 1
else
stepzA = stepzA - 1
stepzB = stepzB - 1
stepzC = stepzC - 1
stepzD = stepzD - 1
endif

PORTC.2 = StepZArrayA[stepzA]
PORTC.3 = StepZArrayB[stepzB]
PORTC.4 = StepZArrayC[stepzC]
PORTC.5 = StepZArrayD[stepzD]
delayms 5
endif

GoTo main

maxvovk
STEPMOTOR:

Кто писал прошивку для 3-х осевого контроллера на pic16f877 ?

Я пытаюсь но что-то с немогу сделать следующий алгоритм:
При поступлении на step вход МК сигнала происходит проверка наличия сигнала Dir, в соответствии дальше переключение обмоток в нужном направлении, и наконец загвоздка состоит в том чтобы следующий шаг происходил только при следуюшем поступлении сигнала. Могу сказать что задержка по временя не годится !

Решения два.

Или поставить D-триггер и по обработке импульса его сбрасывать, или ввести в программу флажок отработки шага, устанавличать его по обработке и сбрасывать по приходу 0. Если я правильно понял, что у вас простой опрос портов, а не прерывания.

STEPMOTOR

😃 Спасибо ! А как приблизительно выглядит алгоритм реализация прерываний в pic для нашей цели ?

maxvovk
STEPMOTOR:

😃 Спасибо ! А как приблизительно выглядит алгоритм реализация прерываний в pic для нашей цели ?

Я не знаком с пиками, но глобально шаг по положительному фронту вызывает прерывание, где оно и обрабатывается 😃. Прерывание получается очень коротким, буквально несколько команд.