Регистрация | Вход

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 1
  • 1
ЧПУ станок
Techno-holst Дата: Вс, 09.02.2014, 12:59  |                                                                                                                Сообщение # 1
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 13.07.2011

Статус: Offline

Всем привет! Ребят, я хочу сделать ЧПУ станочек работающий от USB. Уже собрал драйвера для шаговиков, контроллер на PIC18F2550. Начал писать прогу для компа. Уже дошел до того что при нажатии кнопки в программе шаговые двигатели крутятся в нужном направлении и ведется отчет шагов. Но как сделать чтобы двигатели крутились одновременно не могу сообразить. Например инструмент находиться в положении Х0 и Y0, нужно переместиться по оси Х на 74мм, а по оси Y на 28мм. При условии что инструмент перемещается на 0,005 мм при одном шаге двигателя имеем: 74/0,005=14800 шагов и 28/0,005= 5600 шагов. Так вот, как сделать чтобы оба двигателя начали одновременно работать и одновременно закончили.
Сообщение отредактировал Techno-holst - Вс, 09.02.2014, 13:04
ЯНДЕКС Дата: 09.02.2014
ADMIN Дата: Пн, 10.02.2014, 03:03  |                                                                                                                Сообщение # 2
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

Ну, а каким образом в программе, например, по X движение производится? Этот кусок можно глянуть?
Techno-holst Дата: Пн, 10.02.2014, 04:59  |                                                                                                                Сообщение # 3
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 13.07.2011

Статус: Offline

движение осуществляется передачей либо 0 либо 1 либо 2 через буфер. Если движение не нужно то передаю 0, если двигаюсь в лево посылаю 2, если в право то 1. а PIC получив эти данные уже сам по своей программе вращает двигатель. В приведенном примере я так понимаю по оси Х все 14800 шагов мне нужно подавать 1. а вот по Y мне нужно подавать как нули так и 1. А как вывести эту зависимость я не могу понять.
ADMIN Дата: Пн, 10.02.2014, 11:01  |                                                                                                                Сообщение # 4
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

А может стоит отправлять по два бита на каждую ось? Может, так проще будет? К примеру:
0000 - стоят оба
0001 - вперед по х
0010 - назад по х
0100 - вперед по у
1000 - назад по у
1010 - назад по х и у
и т. д.
А в теле программы проверять соответствующий бит и присваивать его исполнительному устройству
Ну как-то так
Techno-holst Дата: Пн, 10.02.2014, 11:15  |                                                                                                                Сообщение # 5
Группа: Проверенные
Ранг:  Начал соображать
Сообщений: 24
Репутация: 0   ±
Замечания:   ±
На сайте с 13.07.2011

Статус: Offline

Оно так и получается. Нужно значения (14800 шагов и 5600 шагов) перевести в биты. С 14800 шагами мне понятно- каждый бит будет равен 1, а 5600 нужно дробить на 0 и 1.

Пример для расстояния когда Y в два раза меньше чем Х:

1000 делает шаг двигатель по оси Х
1010 делает шаг двигатель по оси Х и по оси Y
1000 делает шаг двигатель по оси Х
1010 делает шаг двигатель по оси Х и по оси Y
и так далее.

А когда значения Х и Y не делятся без остатка?
ADMIN Дата: Пн, 10.02.2014, 12:41  |                                                                                                                Сообщение # 6
Администратор
Группа: Администраторы
Ранг:  Специалист
Сообщений: 1086
Репутация: 32   ±
Замечания:   ±
На сайте с 20.08.2007

Статус: Offline

А может отправлять количество шагов? И бит, вперед или назад? А в программе организовать цикл с одновременной проверкой обоих значений направления движения.
seregtlt Дата: Пт, 28.11.2014, 15:04  |                                                                                                                Сообщение # 7
Группа: Проверенные
Ранг:  Новенький
Сообщений: 13
Репутация: 0   ±
Замечания:   ±
На сайте с 07.12.2011

Статус: Offline

сделал станок?
еще надо учитывать какую форму обрабатывать круг, квадрат...
0000 двигатели стоят
0001 +1 шаг 1 двигатель
0010 -1 шаг 1 двигатель
0100 +1 шаг 2 двигатель
1000 -1 шаг 2 двигатель
в самой программе - скорость двигателей и их оборотов

третий двигатель "подача" шаг и скорость режущего инструмента (сверло, фреза...)

если нужно узнаю в какой программе подготавливается такой код. лучше брать промышленный стандарт, отработанный годами.
  • Страница 1 из 1
  • 1
Поиск: