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

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

Объявление

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

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


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


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

Сообщений 61 страница 90 из 237

61

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

koolhatcker написал:
Задача - нарисовать прямую линию на этой плоскости. Координаты начала линии 0,0. Координаты конца линии... ну пусть будут 3,1. На мой взгляд это не сможет просчитать ни МК ни PC. Если заблуждаюсь - поправьте.Для вашей задачи несложно.
Для начала делается расчет расстояний(или целых шагов)по осям,будет  3 и 1( или например 300 и 100 шагов,  затем вычисляется соотношение расстояний (или целых шагов) получится 3:1, контроллер посылает три шага по одной оси, один по другой. Точность получается максимально возможной для полношагового режима.

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

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

Господа! Я вас очень прошу, посмотрите ВНИМАТЕЛЬНО!! на распечатки G-coda которые я выкладывал. Там уже расчитана вся траектория движения инструмента! Там нет координат! Там величины на которые должны сдвигаться оси и в какой последовательности что бы получить необходимую траекторию!!! Все что нам нужно, это взять эти цифры и зная кол-во шагов на мм прокрутить ШД на нужное колво шагов в нужном направлении. И все!
Это даже можно сделать при помощи кнопок. На простом калькуляторе пересчитываем мм в шаги и вперед, через неделю наслаждаемся результатом! :rofl:

0

62

И еще. Среди нас я так понял есть люди знающие компьютерное программирование. Так почему бы не сделать программку которая пересчитала бы сразу Ж-код в шаги?
Имеем:
Y2.063
Y2.196
X74.929
X24.554
X24.300Z-5.929
X24.046Z-5.965
получаем (специально не пересчитывал, цифры только для примера):
Y34
X12
X10Z-20 ну и т.д.
Чем не удобный формат для обработки в МК? Целые числа! Нужно только по количеству шагов крутить соответствующий ШД. Я предлагаю в этом направлении и работать. Используем два байта, первый - один полубайт ось, второй направление, второй байт кол-во шагов. По моему не очень сложно. :)
зы. разумеется в программе расчета должна быть возможность задавать шаг/мм для каждой оси, так как на одном станке могут стоять ШД с разным соотношением не говоря уже про разные станки.

Отредактировано life (2008-03-18 03:09:10)

0

63

Блин, опять накасячил!  :blush: В строчках всетаки точка на оси куда должны приехать. Но это сути не меняет. Вычислить пробег очень просто. Нужно просто от следующей координаты отнимать предыдущую, получившееся число и есть пробег в мм а знак-направление, и получаем шаги. Вот небольшой пример:
X75.01(начало)
Y0.07(начало)
Y0.20
X74.93
X0.00
Y0.27
Y0.40
X0.09

Алгоритм следующий (начиная с третьей строчки):
Y=(0.20-0.07)/0.005(200шаг/мм)=26 шагов вперед
X=(74.93-75.01)/0.005=-16 шагов назад
X=(0.00-74.93)/0.005=-14986 шагов назад
Y=(0.27-0.2)/0.005=14 шагов вперед
Y=(0.40-0.27)/0.005=26 шагов вперед
X=(0.09-0)/0.005=18 вперед

Получившееся в третьей строке большое число шагов тоже не проблема. В один байт мы можем запихать 255 шагов. Значит повтор двух байт нужное колво целых раз, следующие два-довесок. Может ктонибудь сваять программку для пересчета?
Кстати, в первом байте мы используем только три бита, один направление, два - выбор оси (до четырех), остается еще пять. Вот в них то и можно закладывать колво повторов на больших проходах.

Отредактировано life (2008-03-18 07:36:05)

0

64

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

Блин, опять накасячил!

Это все от спешки :-) 

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

Так почему бы не сделать программку которая пересчитала бы сразу Ж-код в шаги?

Надо сначала определиться, какие из G-кодов будем использовать.
А отдельные мелкие алгоритмы, например разгон и торможение, расчет траектории, опрос конечников, работу ШИМ, обмен по СОМ, можно уже начинать делать, даже если входными данными будут Екселлон или HPGL. 

По поводу вопроса - может ли кто сваять программу - встречный вопрос: А под какой камень?
С этим то еще не определились, еще нет алгоритмов.
Хотя....
Кто работает с симуляторами, может и попробовать.

Отредактировано Трудоголик (2008-03-18 08:07:12)

0

65

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

Алгоритм следующий (начиная с третьей строчки):
Y=(0.20-0.07)/0.005(200шаг/мм)=26 шагов вперед
X=(74.93-75.01)/0.005=-16 шагов назад
X=(0.00-74.93)/0.005=-14986 шагов назад
Y=(0.27-0.2)/0.005=14 шагов вперед
Y=(0.40-0.27)/0.005=26 шагов вперед
X=(0.09-0)/0.005=18 вперед

НАрисуйте на листке бумаги в клеточку то что вы написали :-)
Хорошо, если это будут холостые перемещения, а если рабочий ход?

Отредактировано Трудоголик (2008-03-18 08:12:04)

0

66

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

НАрисуйте на листке бумаги в клеточку то что вы написали
Хорошо, если это будут холостые перемещения, а если рабочий ход?

Рисовал. Только я не понял что Вы имеете ввиду? Могу подробно. Пример взят из УП 3D вычисленного "змейкой" по X.
По Y смещаемся на 26 шагов вперед
По X 16 шагов назад (пример взят из середины УП) врезка в материал
По X 14968 назад через всю заготовку
По Y опять в общей сложности 40 шагов вперед
По X 18 шагов вперед врезка в материал
Далее По X 14966 шагов вперед (просто пример кончился)
и т.д. Чего сдесь не понятно? Обычная змейка. Доходим до объема подключается Z

0

67

Весь топик читать пока не стал, ибо не забивать голову!
Сейчас жду новостей с завода - должны изготовить детали к станине!
Но уже могу Вас всех поправить!!!!

Ребят почему PIC???
Да это супер это первый МК и тд и тп...
Мы привыкли писать под пик!
У меня тоже есть знакомый который так ГОВОРИЛ!

Я подарил ему в особенный праздник (понедельник) ATmega16... и ссылочку на сайтик Http:// avr 123 . narod . ru
Он сказал что посмотрит!
Сейчас он в сторону пиков не смотрит, только плюеться!
Попробуйте перейти!
Благо я не задел время пиков и сразу начал изучение атмеги!!!

0

68

3BEPb написал(а):

Но уже могу Вас всех поправить!!!!

Поправить - значит указать на ошибку. А кто сдесь ошибается?? Один ездит на феррари второй на бенкли, кто не прав??

3BEPb написал(а):

Благо я не задел время пиков и сразу начал изучение атмеги!!!

Вот и изучайте!!! Вы что хотели, чтобы люди побросали свои навыки, наработки, РАЗРАБОТКИ и сразу на АВР? Может проще свою альтернативную ветку сделать? Думаю сторонников найдется достаточно?

0

69

В строчках всетаки точка на оси куда должны приехать.

причем это вполне могут быть координаты относительно предыдущей точки.

Алгоритм пересчета входного файла уже есть, можно не изобретать. 8 битному МК такую точность не осилить, да оно и не надо. А вот формат данных передаваемых в контроллер стоит оговорить заранее. Если кто-то пишет для АТ - флаг в руки! :) Ничего не меняется: на входе 8-битные посылки (две на ось по моим прикидкам), на выходе - ключи ШД (4 ноги) и модуль управления током (еще 2 ноги).
Приятная особенность - CNC начинает работать в realTime, что под LPT только в чистом DOS возможно.

0

70

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

Чего сдесь не понятно? Обычная змейка. Доходим до объема подключается Z

Все понятно, проблема в прямолинейности  перемещений, о которой говорил Кулхацкер. Чтобы приблизится к прямой линии змейка должна иметь  перемещения максимально приближенные к этой прямой линии.

Например, для реального станка с подачей 200 шагов на мм, для перемещения из точки 0, 0 в точку 3,1 ( в миллиметрах)    нужно сделать 600 шагов по оси Х и 200 шагов по оси Y.
Максимальное приближение к прямой линии между этими точками будет, если двигатели будут делать Х=3 шага Y=1 шаг, Х= 3 шага и Y=1 шаг,  и так 200 раз подряд. И это для движения по прямой линии.

Попробуйтите нарисовать алгоритм, если нужно сделать движения по кругу с радиусом 1000 шагов(или 5 мм)

0

71

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

Вот и изучайте!!! Вы что хотели, чтобы люди побросали свои навыки, наработки, РАЗРАБОТКИ и сразу на АВР? Может проще свою альтернативную ветку сделать? Думаю сторонников найдется достаточно?

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

0

72

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

Все понятно, проблема в прямолинейности  перемещений, о которой говорил Кулхацкер. Чтобы приблизится к прямой линии змейка должна иметь  перемещения максимально приближенные к этой прямой линии.
Например, для реального станка с подачей 200 шагов на мм, для перемещения из точки 0, 0 в точку 3,1 ( в миллиметрах)    нужно сделать 600 шагов по оси Х и 200 шагов по оси Y.
Максимальное приближение к прямой линии между этими точками будет, если двигатели будут делать Х=3 шага Y=1 шаг, Х= 3 шага и Y=1 шаг,  и так 200 раз подряд. И это для движения по прямой линии.

Трудоголик, я Вас очень уважаю!!! Но всеже отрегулируйте оптику у себя на "Мире"! Еще раз взгляните на распечатку G-cod, я Вас очень прошу!!! Там же уже все расчитано! Сколько и какой ШД должен сделать шагов чтобы переместиться по диагонали или по кругу. Я в отчаянии, если Вы этого не увидите, не кто не увидит!

0

73

Моя ошибка что я привел пример с 3D. Сейчас нарисую кружок и быстренько расчитаю, никуда не уходите! :)

0

74

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

Для совместимости со стандартными step/dir используем такую схему

Не мучайся и не изобретай, все уже изобретено до нас.
Вот готовая схема одного канала колнтроллера, разбита на 2 части.
Здесь есть все, и СОМ порт и степ дир(замаскированный под направления)  и конечники и ШИМ и драйвера.
Осталось только разработать алгоритм и написать программу. А можно просто поискать в инете куски кода под нужный контроллер и зашить их в имеющийся камень в нужном порядке. :-)

0

75

Вот полный код 2D, круг диаметром 5мм:
X6.02Y10.40
X6.07Y10.73
X6.15Y11.07
X6.26Y11.41
X6.41Y11.76
X6.59Y12.09
X6.81Y12.41
X7.06Y12.71
X7.34Y12.99
X7.65Y13.24
X7.99Y13.46
X8.34Y13.64
X8.71Y13.78
X9.08Y13.89
X9.45Y13.96
X9.82Y14.00
X10.18Y14.00
X10.53Y13.96
X10.88Y13.90
X11.22Y13.81
X11.57Y13.68
X11.91Y13.51
X12.24Y13.31
X12.56Y13.07
X12.85Y12.80
X13.12Y12.51
X13.35Y12.18
X13.55Y11.84
X13.71Y11.48
X13.84Y11.12
X13.93Y10.75
X13.98Y10.38
X14.00Y10.02
X13.99Y9.67
X13.94Y9.32
X13.86Y8.96
X13.75Y8.60
X13.60Y8.25
X13.41Y7.91
X13.18Y7.58
X12.92Y7.27
X12.63Y6.99
X12.32Y6.74
X11.98Y6.52
X11.62Y6.34
X11.25Y6.20
X10.88Y6.10
X10.51Y6.03
X10.15Y6.00
X9.80Y6.00
X9.44Y6.04
X9.09Y6.10
X8.72Y6.21
X8.37Y6.35
X8.02Y6.53
X7.68Y6.74
X7.36Y6.99
X7.07Y7.27
X6.81Y7.58
X6.59Y7.91
X6.40Y8.26
X6.24Y8.62
X6.13Y8.99
X6.05Y9.36
X6.01Y9.72
X6.00Y10.08
Уважаемый Трудоголик посмотрите на это внимательно , разве не об этом речь? На все про все ушло 2 мин.

0

76

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

Трудоголик, я Вас очень уважаю!!! Но всеже отрегулируйте оптику у себя на "Мире"! Еще раз взгляните на распечатку G-cod, я Вас очень прошу!!! Там же уже все расчитано! Сколько и какой ШД должен сделать шагов чтобы переместиться по диагонали или по кругу. Я в отчаянии, если Вы этого не увидите, не кто не увидит!

Вы уж определитесь, то вы говорите

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

Блин, опять накасячил!   В строчках всетаки точка на оси куда должны приехать. !

А теперь там уже расчитанное число шагов, так что же все таки в G-коде, например в последовательности

G54D10*
X16000Y0D02*
X0Y0D01*
X0Y10000D01*
X16000Y10000D01*
X16000Y0D01*
X15746Y9746D02*
G54D11*
D03*

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

Отредактировано Трудоголик (2008-03-18 12:38:25)

0

77

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

Уважаемый Трудоголик посмотрите на это внимательно , разве не об этом речь? На все про все ушло 2 мин.

Получился 66-угольник, но не круг с радиусом 1000 точек.
:-) Можно и более приблизить к кругу..

0

78

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

Вы уж определитесь, то вы говорите

Про шаги это я уже заговариваться начал от досады. :(

0

79

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

Получился 66-угольник, но не круг с радиусом 1000 точек.
Можно и более приблизить к кругу..

А при диаметре 5мм вы это заметите? Тем более это не я расчитал а программа, с точностью выполнения кривых безье 0.01, можно поставить 0.001 будет угольник гораздо более угольный, в любом случае Вы сами же говорили что ШД есть ШД и любая линия будет ступеньками. Вобщем все, я выдохся. Ваш авторитет не обойдешь, даже в 5мм кружке вы увидели 66угольник, значит оптика настроена.

0

80

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

Про шаги это я уже заговариваться начал от досады

Бывает.

0

81

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

даже в 5мм кружке вы увидели 66угольник, значит оптика настроена.

Это не только оптика настроена, это и "математический аппарат" хорошо работает.:-)
Не обижайтесь, я просто хочу подвести вас к правильному решению.
Если я его дам сразу - вы просто пропустите мимо ушей и в будущем не будете этого знать.
На самом деле все зависит от алгоритма и способности МК делать массу вычислений.
Можно ограничиться и 66-ю углами, более того, если вы рисовали круглые пятачки на плате, то наверное заметили, что Спринт лайоут выдает, например, всего 8-угольник вместо круга :-)
Ваша распечатка - результат вычислений программы, настроенной с определенной погрешностью.
ЕСли вы уменьшите погрешность, вашему компу поридется делать не 66, а например 400 вычислений промежуточных точек.
Конечно все здесь упирается в ДОСТАТОЧНОСТЬ и производительность вычислителя..

0

82

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

так что же все таки в G-коде, например в последовательности
G54D10*
X16000Y0D02*
X0Y0D01*
X0Y10000D01*
X16000Y10000D01*
X16000Y0D01*
X15746Y9746D02*
G54D11*
D03*

Видать мы о разном формате G-cod говорим. Выше кружок тоже в G-cod но гораздо понятней и мной не изменен.

0

83

Кстати, про кривые, задайте ту же задачу, но с точностью 0,0025 мм, это максимальная точность для двигателей, делающих на один оборот 200 шагов(400 полушагов), при условии применения винтовой передачи 1 оборот на 1 мм.
Меня интересует только один вопрос, сколько получится промежуточных точек(строк с координатами) для рисования круга диаметром 5 мм c максимальной точностью? Листинг помещать не надо, слишком большой.

0

84

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

Видать мы о разном формате G-cod говорим. Выше кружок тоже в G-cod но гораздо понятней и мной не изменен.

Это кусок кода для фотоплоттера,формат Gerber,  выше уже говорилось о различии кодов.

0

85

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

И еще. Среди нас я так понял есть люди знающие компьютерное программирование. Так почему бы не сделать программку которая пересчитала бы сразу Ж-код в шаги?

В Ж-кодах шаги уже содержатся.

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

Чем не удобный формат для обработки в МК? Целые числа!

Там и так целые числа.
В постпроцессоре укажите формат 2.3 - получите цифры в микронах без всяких запятых.

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

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

Насчёт "один полубайт ось" - не понял о чём речь. :(
Для направления достаточно бита. Зачем байт то?
Насчёт кол-ва шагов. Моё мнение - если в файле значения координат будут в микронах, то под координты по X и Y нужно будет минимум 3 байта. Если применить 2 байта, то это 2 в 16 степени - 65536 микрон=65,5мм - маловато будет.

0

86

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

Кстати, про кривые, задайте ту же задачу, но с точностью 0,0025 мм, это максимальная точность для двигателей, делающих на один оборот 200 шагов(400 полушагов), при условии применения винтовой передачи 1 оборот на 1 мм.
Меня интересует только один вопрос, сколько получится промежуточных точек(строк с координатами) для рисования круга диаметром 5 мм c максимальной точностью? Листинг помещать не надо, слишком большой.

Задается не не точность двигателей а обработки кривых безье. Минимальное значение 0.001. Задал. На примерно 200 строчке сбился считать. И это при диаметре 5мм. Это то и так было понятно. Нам 66угольника не достаточно? Извените но чем его нужно нарисовать(начертить, выфрезеровать и т.д.) что бы при диаметре 5 мм было видно 66 углов???

0

87

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

В Ж-кодах шаги уже содержатся.

Приведите кусок листинга.

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

Насчёт кол-ва шагов. Моё мнение - если в файле значения координат будут в микронах, то под координты по X и Y нужно будет минимум 3 байта. Если применить 2 байта, то это 2 в 16 степени - 65536 микрон=65,5мм - маловато будет.

Максимальная точность, которую можно получить без редуктора и микрошага с двигателями с углом поворота 1,8 град на шаг - это 0,0025 мм.
Это с шагом винта 1 мм, меньший шаг практически не применяют.
То есть это минимальный разумный шаг, меньше все равно можно получить только редуктором или микрошагом.
От этого и плясать надо.

0

88

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

Еще раз взгляните на распечатку G-cod, я Вас очень прошу!!! Там же уже все расчитано! Сколько и какой ШД должен сделать шагов чтобы переместиться по диагонали или по кругу.

Вы наверное не понимаете одну вещь...
Отличие между кодами G00 и G01.
G00
X6.02Y10.40
Будет передвигать по оси X с максимальной скоростью и по оси Y с максимальной скоростью, т.е.
двигатели по X и Y крутятся с одинаковой скоростью.
Т.е. к тому моменту, как по оси X перемещение уже закончится, по оси Y ещё будет продолжаться движение на 4мм.
G01
X6.02Y10.40
Эта команда означает, что нужно переместить по X на 6.02мм и по Y на 10.49мм.
НО двигатели должны достичь конечных точек ОДНОВРЕМЕННО.

0

89

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

В Ж-кодах шаги уже содержатся.

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

0

90

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

Нам 66угольника не достаточно? Извените но чем его нужно нарисовать(начертить, выфрезеровать и т.д.) что бы при диаметре 5 мм было видно 66 углов???

Станком.
Он работает с той точностью, которую вы задали - 0,0025 мм.
Если оптика хорошая,:-)  то можно разглядеть, вон Кулхацкер различил змейку в движениях по 3 и 1 шагу, а это для станка соответствует 0,0075 и 0,0025 мм. :-)

0


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